mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
make sure ifp->if_transmit returns 0 if a buffer is enqueued.
A similar fix should be applied to vmxnet, ixgbe, igb, i40e. (some of them previously reported by Michael Tuexen) 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. Approved by: bryanv MFC after: 3 days
This commit is contained in:
parent
997a303f17
commit
c26e5fc2ed
1 changed files with 1 additions and 2 deletions
|
|
@ -2262,7 +2262,6 @@ vtnet_txq_mq_start_locked(struct vtnet_txq *txq, struct mbuf *m)
|
|||
while ((m = drbr_peek(ifp, br)) != NULL) {
|
||||
if (virtqueue_full(vq)) {
|
||||
drbr_putback(ifp, br, m);
|
||||
error = ENOBUFS;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -2285,7 +2284,7 @@ vtnet_txq_mq_start_locked(struct vtnet_txq *txq, struct mbuf *m)
|
|||
txq->vtntx_watchdog = VTNET_TX_TIMEOUT;
|
||||
}
|
||||
|
||||
return (error);
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
|
|
|
|||
Loading…
Reference in a new issue