- ifnet.if_output() should be called without ifnet.if_serializer being
held. Add assertion about it in ether_output().
- ether_output_frame() should be called without the ifnet.if_serializer
being held. Add assertion in it.
- arp_ifinit() will be called with ifnet.if_serializer being held. To
prevent serializer from recursion, ifnet.if_serializer is released
before calling arprequest(), which supposes caller does not hold output
iface's serializer.
- ifnet.if_serializer can't be held when calling arp_ifinit2().
Reported-by: dillon@