xen-netfront: fix trying to send packets with disconnected netfront
In certain circumstances xn_txq_mq_start might be called with num_queues == 0 during the resume phase after a migration, which can trigger a KASSERT. Fix this by making sure the carrier is on before trying to transmit, or else return that the queues are full. Just as a note, I haven't been able to reproduce this crash on my test systems, but I still think it's possible and worth fixing. Reported by: Karl Pielorz <kpielorz_lst@tdx.co.uk> Sponsored by: Citrix Systems R&D MFC after: 5 days Reviewed by: Wei Liu <wei.liu2@citrix.com> Differential revision: https://reviews.freebsd.org/D7349
This commit is contained in:
parent
ba472a5164
commit
5507f31d44
@ -2157,6 +2157,9 @@ xn_txq_mq_start(struct ifnet *ifp, struct mbuf *m)
|
||||
np = ifp->if_softc;
|
||||
npairs = np->num_queues;
|
||||
|
||||
if (!netfront_carrier_ok(np))
|
||||
return (ENOBUFS);
|
||||
|
||||
KASSERT(npairs != 0, ("called with 0 available queues"));
|
||||
|
||||
/* check if flowid is set */
|
||||
|
Loading…
x
Reference in New Issue
Block a user