Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/gve/gve_tx.c
Show First 20 Lines • Show All 746 Lines • ▼ Show 20 Lines | while ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0 && | ||||
if (gve_is_gqi(priv)) | if (gve_is_gqi(priv)) | ||||
err = gve_xmit(tx, mbuf); | err = gve_xmit(tx, mbuf); | ||||
else { | else { | ||||
/* | /* | ||||
* gve_xmit_dqo might attempt to defrag the mbuf chain. | * gve_xmit_dqo might attempt to defrag the mbuf chain. | ||||
* The reference is passed in so that in the case of | * The reference is passed in so that in the case of | ||||
* errors, the new mbuf chain is what's put back on the br. | * errors, the new mbuf chain is what's put back on the br. | ||||
*/ | */ | ||||
if (gve_is_qpl(priv)) | |||||
err = gve_xmit_dqo_qpl(tx, mbuf); | |||||
else | |||||
err = gve_xmit_dqo(tx, &mbuf); | err = gve_xmit_dqo(tx, &mbuf); | ||||
} | } | ||||
if (__predict_false(err != 0 && mbuf != NULL)) { | if (__predict_false(err != 0 && mbuf != NULL)) { | ||||
drbr_putback(ifp, tx->br, mbuf); | drbr_putback(ifp, tx->br, mbuf); | ||||
taskqueue_enqueue(tx->xmit_tq, &tx->xmit_task); | taskqueue_enqueue(tx->xmit_tq, &tx->xmit_task); | ||||
break; | break; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 103 Lines • Show Last 20 Lines |