Message ID | 20210224153803.91194-1-wangkefeng.wang@huawei.com |
---|---|
State | New |
Headers | show |
Series | net: bridge: Fix jump_label config | expand |
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 <wangkefeng.wang@huawei.com> You need to CC the authors of the commit you're blaming. Please make use of scripts/get_maintainers.pl and repost.
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 <wangkefeng.wang@huawei.com> > 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.
On Wed, Feb 24, 2021 at 8:03 AM Kefeng Wang <wangkefeng.wang@huawei.com> 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 <wangkefeng.wang@huawei.com> 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.
On 2021/2/26 5:22, Cong Wang wrote: > On Wed, Feb 24, 2021 at 8:03 AM Kefeng Wang <wangkefeng.wang@huawei.com> 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 <wangkefeng.wang@huawei.com> > 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. >
On Thu, Feb 25, 2021 at 5:39 PM Kefeng Wang <wangkefeng.wang@huawei.com> wrote: > > > On 2021/2/26 5:22, Cong Wang wrote: > > On Wed, Feb 24, 2021 at 8:03 AM Kefeng Wang <wangkefeng.wang@huawei.com> 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 <wangkefeng.wang@huawei.com> > > 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.
On 2021/2/27 4:19, Cong Wang wrote: > On Thu, Feb 25, 2021 at 5:39 PM Kefeng Wang <wangkefeng.wang@huawei.com> wrote: >> >> On 2021/2/26 5:22, Cong Wang wrote: >>> On Wed, Feb 24, 2021 at 8:03 AM Kefeng Wang <wangkefeng.wang@huawei.com> 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 <wangkefeng.wang@huawei.com> >>> 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. >
On 2021/2/27 4:19, Cong Wang wrote: > On Thu, Feb 25, 2021 at 5:39 PM Kefeng Wang <wangkefeng.wang@huawei.com> wrote: >> >> On 2021/2/26 5:22, Cong Wang wrote: >>> On Wed, Feb 24, 2021 at 8:03 AM Kefeng Wang <wangkefeng.wang@huawei.com> 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 <wangkefeng.wang@huawei.com> >>> 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. >
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
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 <wangkefeng.wang@huawei.com> --- net/bridge/br_input.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)