The old USB ethernet code utilized a netisr to hand packets over
the ether_input and cleanup after txeof. This was broken some
time ago and is a workaround for the different IPL of USB and
the network stack.
Reduce the amount of hacks by removing usb_tx_done, it can be
done mostly in-place with a slight race-condition in the enqueue
code. usb_ether_input now directly calls ether_input, the caller
is responsible for rearming the receiver. That's doesn't open
a race since the receiver doesn't have to handle the interface
queues, for the driver state is the driver responsible.
The IPL protection of the USB ethernet drivers has to be reviewed,
it's mostly not existing.