[PATCH] common/cnxk: add bulk Rx queue enable/disable

Stephen Hemminger stephen at networkplumber.org
Wed Jun 17 16:52:07 CEST 2026


On Wed, 17 Jun 2026 11:19:43 +0530
Rakesh Kudurumalla <rkudurumalla at marvell.com> wrote:

>  
> +#define NIX_RQ_BULK_ENA_DIS_LOOP(REQ_TYPE, ALLOC_FN)                                               \
> +	do {                                                                                       \
> +		for (i = 0; i < nb_rx_queues; i++) {                                               \
> +			REQ_TYPE *aq;                                                              \
> +			if (rqs[i].qid == UINT16_MAX)                                              \
> +				continue;                                                          \
> +			struct roc_nix_rq *rq = &rqs[i];                                           \
> +			aq = ALLOC_FN(mbox);                                                       \
> +			if (!aq) {                                                                 \
> +				rc = mbox_process(mbox);                                           \
> +				if (rc)                                                            \
> +					goto exit;                                                 \
> +				aq = ALLOC_FN(mbox);                                               \
> +				if (!aq) {                                                         \
> +					rc = -ENOSPC;                                              \
> +					goto exit;                                                 \
> +				}                                                                  \
> +			}                                                                          \
> +			aq->qidx = rq->qid;                                                        \
> +			aq->ctype = NIX_AQ_CTYPE_RQ;                                               \
> +			aq->op = NIX_AQ_INSTOP_WRITE;                                              \
> +			aq->rq.ena = enable;                                                       \
> +			aq->rq_mask.ena = ~(aq->rq_mask.ena);                                      \
> +		}                                                                                  \
> +	} while (0)
> +

Why can't this be an inline function? large macros are a bad idea.


More information about the dev mailing list