diff options
author | luigi <luigi@FreeBSD.org> | 2014-06-09 15:09:05 +0000 |
---|---|---|
committer | luigi <luigi@FreeBSD.org> | 2014-06-09 15:09:05 +0000 |
commit | 63bea6a96753d317493e55c47f357c8327ed75ed (patch) | |
tree | 38d0490d94328cb41d3ce793160bc5a02a939658 /sys/dev/ixgbe | |
parent | 5fc12f2e25f4654073d961305e90bb5ec2e4c84b (diff) | |
download | FreeBSD-src-63bea6a96753d317493e55c47f357c8327ed75ed.zip FreeBSD-src-63bea6a96753d317493e55c47f357c8327ed75ed.tar.gz |
MFC svn 267065 and 267187
make sure ifp->if_transmit returns 0 if a buffer is enqueued.
This should also be merged to stable/9.
After this fix, drivers still known to have this bug are igxbe/ixv
and i40e.
Drivers using if_transmit are correct, and so are most of the
other drivers that reassing if_transmit.
Among other things, this bug causes panics when using netmap emulation
on top of generic drivers.
Diffstat (limited to 'sys/dev/ixgbe')
-rw-r--r-- | sys/dev/ixgbe/ixgbe.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/ixgbe/ixgbe.c b/sys/dev/ixgbe/ixgbe.c index 5b9fa01..597256a 100644 --- a/sys/dev/ixgbe/ixgbe.c +++ b/sys/dev/ixgbe/ixgbe.c @@ -831,12 +831,12 @@ ixgbe_mq_start(struct ifnet *ifp, struct mbuf *m) if (err) return (err); if (IXGBE_TX_TRYLOCK(txr)) { - err = ixgbe_mq_start_locked(ifp, txr); + ixgbe_mq_start_locked(ifp, txr); IXGBE_TX_UNLOCK(txr); } else taskqueue_enqueue(que->tq, &txr->txq_task); - return (err); + return (0); } static int |