diff --git a/sys/dev/ena/ena_datapath.c b/sys/dev/ena/ena_datapath.c index c0066b1209c..1581bc2db87 100644 --- a/sys/dev/ena/ena_datapath.c +++ b/sys/dev/ena/ena_datapath.c @@ -1000,6 +1000,8 @@ ena_xmit_mbuf(struct ena_ring *tx_ring, struct mbuf **mbuf) tx_ring->que->id); } else { ena_log(pdev, ERR, "failed to prepare tx bufs\n"); + ena_trigger_reset(adapter, + ENA_REGS_RESET_DRIVER_INVALID_STATE); } counter_u64_add(tx_ring->tx_stats.prepare_ctx_err, 1); goto dma_error; diff --git a/sys/dev/ena/ena_netmap.c b/sys/dev/ena/ena_netmap.c index daed81986f1..7e07b0a8c55 100644 --- a/sys/dev/ena/ena_netmap.c +++ b/sys/dev/ena/ena_netmap.c @@ -444,6 +444,8 @@ ena_netmap_tx_frame(struct ena_netmap_ctx *ctx) } else { ena_log_nm(adapter->pdev, ERR, "Failed to prepare Tx bufs\n"); + ena_trigger_reset(adapter, + ENA_REGS_RESET_DRIVER_INVALID_STATE); } counter_u64_add(tx_ring->tx_stats.prepare_ctx_err, 1);