15 lines
479 B
Diff
15 lines
479 B
Diff
--- sys/net/iflib.c.orig
|
|
+++ sys/net/iflib.c
|
|
@@ -2301,8 +2301,11 @@
|
|
(sctx->isc_pause_frames == 0)))
|
|
goto hung;
|
|
|
|
- if (ifmp_ring_is_stalled(txq->ift_br))
|
|
+ if (txq->ift_qstatus != IFLIB_QUEUE_IDLE &&
|
|
+ ifmp_ring_is_stalled(txq->ift_br)) {
|
|
+ KASSERT(ctx->ifc_link_state == LINK_STATE_UP, ("queue can't be marked as hung if interface is down"));
|
|
txq->ift_qstatus = IFLIB_QUEUE_HUNG;
|
|
+ }
|
|
txq->ift_cleaned_prev = txq->ift_cleaned;
|
|
}
|
|
#ifdef DEV_NETMAP
|