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/vmware | |
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/vmware')
-rw-r--r-- | sys/dev/vmware/vmxnet3/if_vmx.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/dev/vmware/vmxnet3/if_vmx.c b/sys/dev/vmware/vmxnet3/if_vmx.c index 3acc672..e8d213e 100644 --- a/sys/dev/vmware/vmxnet3/if_vmx.c +++ b/sys/dev/vmware/vmxnet3/if_vmx.c @@ -2933,7 +2933,6 @@ vmxnet3_txq_mq_start_locked(struct vmxnet3_txqueue *txq, struct mbuf *m) /* Assume worse case if this mbuf is the head of a chain. */ if (m->m_next != NULL && avail < VMXNET3_TX_MAXSEGS) { drbr_putback(ifp, br, m); - error = ENOBUFS; break; } @@ -2956,7 +2955,7 @@ vmxnet3_txq_mq_start_locked(struct vmxnet3_txqueue *txq, struct mbuf *m) txq->vxtxq_watchdog = VMXNET3_WATCHDOG_TIMEOUT; } - return (error); + return (0); } static int |