Pei Xiao <xiaopei01@xxxxxxxxxx> wrote: > syzbot complain about using smp_processor_id in preemptible. > use get_cpu_ptr to preempt_disable. > Reported-by: syzbot+84d0441b9860f0d63285@xxxxxxxxxxxxxxxxxxxxxxxxx > Closes: https://syzkaller.appspot.com/bug?extid=84d0441b9860f0d63285 > Fixes: 0e795b37ba04 ("netfilter: nft_inner: add percpu inner context") > Signed-off-by: Pei Xiao <xiaopei01@xxxxxxxxxx> > --- > net/netfilter/nft_inner.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/netfilter/nft_inner.c b/net/netfilter/nft_inner.c > index 928312d01eb1..ae85851bab77 100644 > --- a/net/netfilter/nft_inner.c > +++ b/net/netfilter/nft_inner.c > @@ -248,7 +248,7 @@ static bool nft_inner_parse_needed(const struct nft_inner *priv, > static void nft_inner_eval(const struct nft_expr *expr, struct nft_regs *regs, > const struct nft_pktinfo *pkt) > { > - struct nft_inner_tun_ctx *tun_ctx = this_cpu_ptr(&nft_pcpu_tun_ctx); > + struct nft_inner_tun_ctx *tun_ctx = get_cpu_ptr(&nft_pcpu_tun_ctx); > const struct nft_inner *priv = nft_expr_priv(expr); This can't be right, where is it re-enabled? Not related to your patch: Why is this percpu? How is this softirq safe?