| Bug ID | 1778 |
|---|---|
| Summary | MPRQ buffer reference was not decremented upon MLX5_RXQ_CODE_NOMBUF |
| Product | DPDK |
| Version | 22.11 |
| Hardware | x86 |
| OS | Linux |
| Status | UNCONFIRMED |
| Severity | major |
| Priority | Normal |
| Component | ethdev |
| Assignee | dev@dpdk.org |
| Reporter | canary.overflow@gmail.com |
| Target Milestone | --- |
drivers/net/mlx5/mlx5_rx.h mprq_buf_to_pkt(...): In the external buffer attach case where hdrm_overlap > 0, the code did not decrement the buffer refcnt if allocation struct rte_mbuf *next = rte_pktmbuf_alloc(rxq->mp) fails mprq_buf_to_pkt(...) { ... if (hdrm_overlap > 0) { __atomic_add_fetch(&buf->refcnt, 1, __ATOMIC_RELAXED); ... MLX5_ASSERT(rxq->strd_scatter_en); struct rte_mbuf *seg = rte_pktmbuf_alloc(rxq->mp); if (unlikely(seg == NULL)) return MLX5_RXQ_CODE_NOMBUF; SET_DATA_OFF(seg, 0); ... } }