drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 ++ 1 file changed, 2 insertions(+)
From: Arnd Bergmann <arnd@arndb.de>
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@broadcom.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
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.
---
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
On Wed, Jan 03, 2024 at 11:23:11AM +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> 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@broadcom.com>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> 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
>
On Wed, Jan 3, 2024, at 16:46, Andy Gospodarek wrote:
> On Wed, Jan 03, 2024 at 11:23:11AM +0100, Arnd Bergmann wrote:
>> From: Arnd Bergmann <arnd@arndb.de>
>>
>> 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@broadcom.com>
>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>> ---
>> 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.
I saw this in two randconfig test builds on 32-bit arm, both with
SMP disabled, though I did not expect that to make a difference.
In case it helps, this is one of the two config files:
https://pastebin.com/raw/uxHEXzG2
> 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.
Ok, thanks!
Arnd
On Wed, Jan 3, 2024 at 8:01 AM Arnd Bergmann <arnd@arndb.de> wrote: > > On Wed, Jan 3, 2024, at 16:46, Andy Gospodarek wrote: > > 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. > > Ok, thanks! Yes, we can clean this up better. User configured ntuple filters are directly added and don't go through bnxt_cfg_ntp_filters() by way of the workqueue. I'll post the fix later today. Thanks.
© 2016 - 2025 Red Hat, Inc.