Subject: Re: [PATCH v3 5/8] RDMA/bng_re: Add infrastructure for enabling Firmware channel

From: Leon Romanovsky <[email-masked]>
Date: Thu, 20 Nov 2025 18:02:44 +0200

On Mon, Nov 17, 2025 at 05:11:23PM +0000, Siva Reddy Kallam wrote:
> Add infrastructure for enabling Firmware channel.
> 
> Signed-off-by: Siva Reddy Kallam <[email-masked]>
> Reviewed-by: Usman Ansari <[email-masked]>
> ---
>  drivers/infiniband/hw/bng_re/bng_dev.c | 120 +++++++-
>  drivers/infiniband/hw/bng_re/bng_fw.c  | 361 ++++++++++++++++++++++++-
>  drivers/infiniband/hw/bng_re/bng_fw.h  | 133 ++++++++-
>  drivers/infiniband/hw/bng_re/bng_re.h  |  45 +++
>  drivers/infiniband/hw/bng_re/bng_res.c |   2 +
>  drivers/infiniband/hw/bng_re/bng_res.h | 102 +++++++
>  drivers/infiniband/hw/bng_re/bng_tlv.h | 128 +++++++++
>  7 files changed, 885 insertions(+), 6 deletions(-)
>  create mode 100644 drivers/infiniband/hw/bng_re/bng_tlv.h

<...>

> +int bng_re_rcfw_start_irq(struct bng_re_rcfw *rcfw, int msix_vector,
> +			  bool need_init)
> +{
> +	struct bng_re_creq_ctx *creq;
> +	struct bng_re_res *res;
> +	int rc;
> +
> +	creq = &rcfw->creq;
> +	res = rcfw->res;
> +
> +	if (creq->irq_handler_avail)
> +		return -EFAULT;
> +
> +	creq->msix_vec = msix_vector;
> +	if (need_init)
> +		tasklet_setup(&creq->creq_tasklet, bng_re_service_creq);
> +	else
> +		tasklet_enable(&creq->creq_tasklet);

I wonder if new drivers need to use workqueues instead.
https://lwn.net/Articles/966894/

Thanks