2021-02-24 15:52:18

by Kefeng Wang

[permalink] [raw]
Subject: [PATCH] net: bridge: Fix jump_label config

HAVE_JUMP_LABLE is removed by commit e9666d10a567 ("jump_label: move
'asm goto' support test to Kconfig"), use CONFIG_JUMP_LABLE instead
of HAVE_JUMP_LABLE.

Fixes: 971502d77faa ("bridge: netfilter: unroll NF_HOOK helper in bridge input path")
Signed-off-by: Kefeng Wang <[email protected]>
---
net/bridge/br_input.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c
index 222285d9dae2..065b6cfba40f 100644
--- a/net/bridge/br_input.c
+++ b/net/bridge/br_input.c
@@ -207,7 +207,7 @@ static int nf_hook_bridge_pre(struct sk_buff *skb, struct sk_buff **pskb)
int ret;

net = dev_net(skb->dev);
-#ifdef HAVE_JUMP_LABEL
+#ifdef CONFIG_JUMP_LABEL
if (!static_key_false(&nf_hooks_needed[NFPROTO_BRIDGE][NF_BR_PRE_ROUTING]))
goto frame_finish;
#endif
--
2.26.2


2021-02-25 03:10:02

by Jakub Kicinski

[permalink] [raw]
Subject: Re: [PATCH] net: bridge: Fix jump_label config

On Wed, 24 Feb 2021 23:38:03 +0800 Kefeng Wang wrote:
> HAVE_JUMP_LABLE is removed by commit e9666d10a567 ("jump_label: move
> 'asm goto' support test to Kconfig"), use CONFIG_JUMP_LABLE instead
> of HAVE_JUMP_LABLE.
>
> Fixes: 971502d77faa ("bridge: netfilter: unroll NF_HOOK helper in bridge input path")
> Signed-off-by: Kefeng Wang <[email protected]>

You need to CC the authors of the commit you're blaming. Please make
use of scripts/get_maintainers.pl and repost.

2021-02-25 05:31:31

by Kefeng Wang

[permalink] [raw]
Subject: Re: [PATCH] net: bridge: Fix jump_label config


On 2021/2/25 2:54, Jakub Kicinski wrote:
> On Wed, 24 Feb 2021 23:38:03 +0800 Kefeng Wang wrote:
>> HAVE_JUMP_LABLE is removed by commit e9666d10a567 ("jump_label: move
>> 'asm goto' support test to Kconfig"), use CONFIG_JUMP_LABLE instead
>> of HAVE_JUMP_LABLE.
>>
>> Fixes: 971502d77faa ("bridge: netfilter: unroll NF_HOOK helper in bridge input path")
>> Signed-off-by: Kefeng Wang <[email protected]>
> You need to CC the authors of the commit you're blaming. Please make
> use of scripts/get_maintainers.pl and repost.

Yes, I use get_maintainers.pl, but only add maintainers to the list,
thanks for your reminder,

cc the author Florian now.

2021-02-25 21:25:52

by Cong Wang

[permalink] [raw]
Subject: Re: [PATCH] net: bridge: Fix jump_label config

On Wed, Feb 24, 2021 at 8:03 AM Kefeng Wang <[email protected]> wrote:
>
> HAVE_JUMP_LABLE is removed by commit e9666d10a567 ("jump_label: move
> 'asm goto' support test to Kconfig"), use CONFIG_JUMP_LABLE instead
> of HAVE_JUMP_LABLE.
>
> Fixes: 971502d77faa ("bridge: netfilter: unroll NF_HOOK helper in bridge input path")
> Signed-off-by: Kefeng Wang <[email protected]>

Hmm, why do we have to use a macro here? static_key_false() is defined
in both cases, CONFIG_JUMP_LABEL=y or CONFIG_JUMP_LABEL=n.

Thanks.

2021-02-26 01:41:01

by Kefeng Wang

[permalink] [raw]
Subject: Re: [PATCH] net: bridge: Fix jump_label config


On 2021/2/26 5:22, Cong Wang wrote:
> On Wed, Feb 24, 2021 at 8:03 AM Kefeng Wang <[email protected]> wrote:
>> HAVE_JUMP_LABLE is removed by commit e9666d10a567 ("jump_label: move
>> 'asm goto' support test to Kconfig"), use CONFIG_JUMP_LABLE instead
>> of HAVE_JUMP_LABLE.
>>
>> Fixes: 971502d77faa ("bridge: netfilter: unroll NF_HOOK helper in bridge input path")
>> Signed-off-by: Kefeng Wang <[email protected]>
> Hmm, why do we have to use a macro here? static_key_false() is defined
> in both cases, CONFIG_JUMP_LABEL=y or CONFIG_JUMP_LABEL=n.

It seems that all nf_hooks_needed related are using the macro,

see net/netfilter/core.c and include/linux/netfilter.h,

  #ifdef CONFIG_JUMP_LABEL
  struct static_key nf_hooks_needed[NFPROTO_NUMPROTO][NF_MAX_HOOKS];
EXPORT_SYMBOL(nf_hooks_needed);
#endif

  nf_static_key_inc()/nf_static_key_dec()


>
> Thanks.
>

2021-02-26 20:30:27

by Cong Wang

[permalink] [raw]
Subject: Re: [PATCH] net: bridge: Fix jump_label config

On Thu, Feb 25, 2021 at 5:39 PM Kefeng Wang <[email protected]> wrote:
>
>
> On 2021/2/26 5:22, Cong Wang wrote:
> > On Wed, Feb 24, 2021 at 8:03 AM Kefeng Wang <[email protected]> wrote:
> >> HAVE_JUMP_LABLE is removed by commit e9666d10a567 ("jump_label: move
> >> 'asm goto' support test to Kconfig"), use CONFIG_JUMP_LABLE instead
> >> of HAVE_JUMP_LABLE.
> >>
> >> Fixes: 971502d77faa ("bridge: netfilter: unroll NF_HOOK helper in bridge input path")
> >> Signed-off-by: Kefeng Wang <[email protected]>
> > Hmm, why do we have to use a macro here? static_key_false() is defined
> > in both cases, CONFIG_JUMP_LABEL=y or CONFIG_JUMP_LABEL=n.
>
> It seems that all nf_hooks_needed related are using the macro,
>
> see net/netfilter/core.c and include/linux/netfilter.h,
>
> #ifdef CONFIG_JUMP_LABEL
> struct static_key nf_hooks_needed[NFPROTO_NUMPROTO][NF_MAX_HOOKS];
> EXPORT_SYMBOL(nf_hooks_needed);
> #endif
>
> nf_static_key_inc()/nf_static_key_dec()

Same question: why? Clearly struct static_key is defined in both cases:

#else
struct static_key {
atomic_t enabled;
};
#endif /* CONFIG_JUMP_LABEL */

Thanks.

2021-02-27 02:20:40

by Kefeng Wang

[permalink] [raw]
Subject: Re: [PATCH] net: bridge: Fix jump_label config


On 2021/2/27 4:19, Cong Wang wrote:
> On Thu, Feb 25, 2021 at 5:39 PM Kefeng Wang <[email protected]> wrote:
>>
>> On 2021/2/26 5:22, Cong Wang wrote:
>>> On Wed, Feb 24, 2021 at 8:03 AM Kefeng Wang <[email protected]> wrote:
>>>> HAVE_JUMP_LABLE is removed by commit e9666d10a567 ("jump_label: move
>>>> 'asm goto' support test to Kconfig"), use CONFIG_JUMP_LABLE instead
>>>> of HAVE_JUMP_LABLE.
>>>>
>>>> Fixes: 971502d77faa ("bridge: netfilter: unroll NF_HOOK helper in bridge input path")
>>>> Signed-off-by: Kefeng Wang <[email protected]>
>>> Hmm, why do we have to use a macro here? static_key_false() is defined
>>> in both cases, CONFIG_JUMP_LABEL=y or CONFIG_JUMP_LABEL=n.
>> It seems that all nf_hooks_needed related are using the macro,
>>
>> see net/netfilter/core.c and include/linux/netfilter.h,
>>
>> #ifdef CONFIG_JUMP_LABEL
>> struct static_key nf_hooks_needed[NFPROTO_NUMPROTO][NF_MAX_HOOKS];
>> EXPORT_SYMBOL(nf_hooks_needed);
>> #endif
>>
>> nf_static_key_inc()/nf_static_key_dec()
> Same question: why? Clearly struct static_key is defined in both cases:

Ok,  I mean that I don't change the original logic, but that's no need
this macro actually,

it could be built with or without CONFIG_JUMP_LABEL, only increased the
size a little bit.


>
> #else
> struct static_key {
> atomic_t enabled;
> };
> #endif /* CONFIG_JUMP_LABEL */
>
> Thanks.
>

2021-03-16 20:46:20

by Kefeng Wang

[permalink] [raw]
Subject: Re: [PATCH] net: bridge: Fix jump_label config


On 2021/2/27 4:19, Cong Wang wrote:
> On Thu, Feb 25, 2021 at 5:39 PM Kefeng Wang <[email protected]> wrote:
>>
>> On 2021/2/26 5:22, Cong Wang wrote:
>>> On Wed, Feb 24, 2021 at 8:03 AM Kefeng Wang <[email protected]> wrote:
>>>> HAVE_JUMP_LABLE is removed by commit e9666d10a567 ("jump_label: move
>>>> 'asm goto' support test to Kconfig"), use CONFIG_JUMP_LABLE instead
>>>> of HAVE_JUMP_LABLE.
>>>>
>>>> Fixes: 971502d77faa ("bridge: netfilter: unroll NF_HOOK helper in bridge input path")
>>>> Signed-off-by: Kefeng Wang <[email protected]>
>>> Hmm, why do we have to use a macro here? static_key_false() is defined
>>> in both cases, CONFIG_JUMP_LABEL=y or CONFIG_JUMP_LABEL=n.
>> It seems that all nf_hooks_needed related are using the macro,
>>
>> see net/netfilter/core.c and include/linux/netfilter.h,
>>
>> #ifdef CONFIG_JUMP_LABEL
>> struct static_key nf_hooks_needed[NFPROTO_NUMPROTO][NF_MAX_HOOKS];
>> EXPORT_SYMBOL(nf_hooks_needed);
>> #endif
>>
>> nf_static_key_inc()/nf_static_key_dec()
> Same question: why? Clearly struct static_key is defined in both cases:

Hi Cong,  the nf_hooks_needed is wrapped up by this macro, so this place
should use it,

or we will meet the build issue,  thanks.

../net/bridge/br_input.c: In function ‘nf_hook_bridge_pre’:
../net/bridge/br_input.c:211:25: error: ‘nf_hooks_needed’ undeclared
(first use in this function)
  211 |  if
(!static_key_false(&nf_hooks_needed[NFPROTO_BRIDGE][NF_BR_PRE_ROUTING]))


>
> #else
> struct static_key {
> atomic_t enabled;
> };
> #endif /* CONFIG_JUMP_LABEL */
>
> Thanks.
>