The old USB ethernet code utilized a netisr to hand packets over
authorJoerg Sonnenberger <joerg@dragonflybsd.org>
Wed, 16 Feb 2005 22:50:28 +0000 (22:50 +0000)
committerJoerg Sonnenberger <joerg@dragonflybsd.org>
Wed, 16 Feb 2005 22:50:28 +0000 (22:50 +0000)
commitca3f7aba028cfcb2651908509c4b3efae74b4599
treeec6aaaea510831bd8d2bda2de9855f17ba7f2ec2
parent24166da80ebe96922c8c9c2a72b2874d86d0a5a7
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.
sys/bus/usb/usb_ethersubr.c
sys/bus/usb/usb_ethersubr.h
sys/dev/netif/aue/if_aue.c
sys/dev/netif/axe/if_axe.c
sys/dev/netif/cue/if_cue.c
sys/dev/netif/kue/if_kue.c