Re: [PATCH] bnxt: fix building without CONFIG_RFS_ACCEL

From: Andy Gospodarek
Date: Wed Jan 03 2024 - 10:46:45 EST


On Wed, Jan 03, 2024 at 11:23:11AM +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@xxxxxxxx>
>
> A recent patch series generalized the filter logic in bnxt to no
> longer just be used for RFS, but it now fails to build when RFS_ACCEL
> is disabled:
>
> drivers/net/ethernet/broadcom/bnxt/bnxt.c: In function 'bnxt_cfg_ntp_filters':
> drivers/net/ethernet/broadcom/bnxt/bnxt.c:14077:37: error: implicit declaration of function 'rps_may_expire_flow' [-Werror=implicit-function-declaration]
> 14077 | if (rps_may_expire_flow(bp->dev, fltr->base.rxq,
> | ^~~~~~~~~~~~~~~~~~~
>
> Add back one #ifdef check around a call to the missing rps_may_expire_flow()
> function.
>
> Fixes: 59cde76f33fa ("bnxt_en: Refactor filter insertion logic in bnxt_rx_flow_steer().")
> Cc: Michael Chan <michael.chan@xxxxxxxxxxxx>
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> I don't know if this is a correct fix, only checked that it is plausible
> and that it does address the build failure. If a different fix is needed,
> please just treat this as a bug report.

Are you using a kernel config with CONFIG_SMP=n ? That was how I was
able to reproduce this.

There is a good oppportunity to clean this up a little better. When
CONFIG_RFS_ACCEL is not set there is no reason to even have
bnxt_cfg_ntp_filters included in the driver build.

I'll talk to Michael and we will post a fix for this.

> ---
> drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
> index 827821e89c40..83a97c65b728 100644
> --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
> +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
> @@ -14074,6 +14074,7 @@ static void bnxt_cfg_ntp_filters(struct bnxt *bp)
> if (test_bit(BNXT_FLTR_VALID, &fltr->base.state)) {
> if (fltr->base.flags & BNXT_ACT_NO_AGING)
> continue;
> +#if IS_ENABLED(CONFIG_RFS_ACCEL)
> if (rps_may_expire_flow(bp->dev, fltr->base.rxq,
> fltr->flow_id,
> fltr->base.sw_id)) {
> @@ -14081,6 +14082,7 @@ static void bnxt_cfg_ntp_filters(struct bnxt *bp)
> fltr);
> del = true;
> }
> +#endif
> } else {
> rc = bnxt_hwrm_cfa_ntuple_filter_alloc(bp,
> fltr);
> --
> 2.39.2
>