net/af_xdp: fix error handling during Rx queue setup
Checks
Commit Message
Prior to this commit, if rte_pktmbuf_alloc_bullk failed during rx queue
setup the error was not returned to the user and they may incorrectly
assume that the rx queue had been successfully set up. This commit ensures
that the error is returned to the user.
Bugzilla ID: 643
Fixes: d8a210774e1d ("net/af_xdp: support unaligned umem chunks")
Cc: stable@dpdk.org
Signed-off-by: Ciara Loftus <ciara.loftus@intel.com>
---
drivers/net/af_xdp/rte_eth_af_xdp.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Comments
On 3/1/2021 10:34 AM, Ciara Loftus wrote:
> Prior to this commit, if rte_pktmbuf_alloc_bullk failed during rx queue
> setup the error was not returned to the user and they may incorrectly
> assume that the rx queue had been successfully set up. This commit ensures
> that the error is returned to the user.
>
> Bugzilla ID: 643
> Fixes: d8a210774e1d ("net/af_xdp: support unaligned umem chunks")
> Cc: stable@dpdk.org
>
> Signed-off-by: Ciara Loftus <ciara.loftus@intel.com>
Applied to dpdk-next-net/main, thanks.
@@ -1145,7 +1145,8 @@ xsk_configure(struct pmd_internals *internals, struct pkt_rx_queue *rxq,
}
#if defined(XDP_UMEM_UNALIGNED_CHUNK_FLAG)
- if (rte_pktmbuf_alloc_bulk(rxq->umem->mb_pool, fq_bufs, reserve_size)) {
+ ret = rte_pktmbuf_alloc_bulk(rxq->umem->mb_pool, fq_bufs, reserve_size);
+ if (ret) {
AF_XDP_LOG(DEBUG, "Failed to get enough buffers for fq.\n");
goto err;
}