mirror of
https://github.com/opnsense/src.git
synced 2026-02-18 18:20:26 -05:00
ena: Trigger reset when mbuf is NULL error happens
The mbuf is NULL issue happens when the device sends the driver a completion with a wrong request id. Trigger a reset whenever this happens. Approved by: cperciva (mentor) Sponsored by: Amazon, Inc. (cherry picked from commit da73e3a7d08c215a5d8530fea9a9730f8ac3709f)
This commit is contained in:
parent
db0c751ed7
commit
cc489c17d2
1 changed files with 6 additions and 2 deletions
|
|
@ -434,7 +434,9 @@ ena_rx_mbuf(struct ena_ring *rx_ring, struct ena_com_rx_buf_info *ena_bufs,
|
|||
req_id = ena_bufs[buf].req_id;
|
||||
rx_info = &rx_ring->rx_buffer_info[req_id];
|
||||
if (unlikely(rx_info->mbuf == NULL)) {
|
||||
ena_log(pdev, ERR, "NULL mbuf in rx_info");
|
||||
ena_log(pdev, ERR, "NULL mbuf in rx_info. qid %u req_id %u\n",
|
||||
rx_ring->qid, req_id);
|
||||
ena_trigger_reset(adapter, ENA_REGS_RESET_INV_RX_REQ_ID);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
|
|
@ -476,7 +478,8 @@ ena_rx_mbuf(struct ena_ring *rx_ring, struct ena_com_rx_buf_info *ena_bufs,
|
|||
rx_info = &rx_ring->rx_buffer_info[req_id];
|
||||
|
||||
if (unlikely(rx_info->mbuf == NULL)) {
|
||||
ena_log(pdev, ERR, "NULL mbuf in rx_info");
|
||||
ena_log(pdev, ERR, "NULL mbuf in rx_info. qid %u req_id %u\n",
|
||||
rx_ring->qid, req_id);
|
||||
/*
|
||||
* If one of the required mbufs was not allocated yet,
|
||||
* we can break there.
|
||||
|
|
@ -488,6 +491,7 @@ ena_rx_mbuf(struct ena_ring *rx_ring, struct ena_com_rx_buf_info *ena_bufs,
|
|||
* with hw ring.
|
||||
*/
|
||||
m_freem(mbuf);
|
||||
ena_trigger_reset(adapter, ENA_REGS_RESET_INV_RX_REQ_ID);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue