Re: [PATCH] net: bridge: Fix jump_label config

From: Kefeng Wang
Date: Fri Feb 26 2021 - 21:18:51 EST



On 2021/2/27 4:19, Cong Wang wrote:
On Thu, Feb 25, 2021 at 5:39 PM Kefeng Wang <wangkefeng.wang@xxxxxxxxxx> wrote:

On 2021/2/26 5:22, Cong Wang wrote:
On Wed, Feb 24, 2021 at 8:03 AM Kefeng Wang <wangkefeng.wang@xxxxxxxxxx> 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@xxxxxxxxxx>
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.