sfc: Recover from RX queue flush failure
RX queue flush can fail if traffic continues to arrive. Recover by performing an invisible reset. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
This commit is contained in:
committed by
Jeff Garzik
parent
bf4d593479
commit
23bdfdd388
@@ -733,8 +733,10 @@ void falcon_fini_rx(struct efx_rx_queue *rx_queue)
|
|||||||
continue;
|
continue;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (rc)
|
if (rc) {
|
||||||
EFX_ERR(efx, "failed to flush rx queue %d\n", rx_queue->queue);
|
EFX_ERR(efx, "failed to flush rx queue %d\n", rx_queue->queue);
|
||||||
|
efx_schedule_reset(efx, RESET_TYPE_INVISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
/* Remove RX descriptor ring from card */
|
/* Remove RX descriptor ring from card */
|
||||||
EFX_ZERO_OWORD(rx_desc_ptr);
|
EFX_ZERO_OWORD(rx_desc_ptr);
|
||||||
|
Reference in New Issue
Block a user