diff options
author | Jonathan Matthew <jmatthew@cvs.openbsd.org> | 2015-11-28 09:42:11 +0000 |
---|---|---|
committer | Jonathan Matthew <jmatthew@cvs.openbsd.org> | 2015-11-28 09:42:11 +0000 |
commit | 20c47ceb322af637ac425d248011f5be9ab5beb4 (patch) | |
tree | dbc45aba9a7abb0437775efe70029c09161a99b3 /sys/netinet6/in6_ifattach.h | |
parent | 8ed09e4b021bd0584e36de9ccf8079298f62d199 (diff) |
Rework gem_start to check that there's enough space in the ring before
dequeueing a packet, then drop the packet if it can't be sent, rather than
using two phase dequeue then commit.
Adjust sc_tx_cnt using atomic operations, take the kernel lock before
calling gem_start or gem_init from the interrupt handler, and use an
interrupt barrier when taking the interface down.
With all this done, we can mark the interrupt handler for pci (but not sbus)
attached gem(4) as mpsafe.
mpi@ wrote this initially, I fixed bugs to keep sparc64 happy and kept it up
to date with ifq changes.
ok mpi@ dlg@
Diffstat (limited to 'sys/netinet6/in6_ifattach.h')
0 files changed, 0 insertions, 0 deletions