The preempt_disable() and rcu_disable() section was introduced in commit bbbe211c295ff ("net: rcu lock and preempt disable missing around generic xdp") The backtrace shows that bottom halves were disabled and so the usage of smp_processor_id() would not trigger a warning. The "suspicious RCU usage" warning was triggered because rcu_dereference() was not used in rcu_read_lock() section (only rcu_read_lock_bh()). A rcu_read_lock() is sufficient. Remove the preempt_disable() statement which is not needed. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> --- net/core/dev.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c index 1baab07820f65..325b70074f4ae 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -4796,7 +4796,6 @@ static int netif_rx_internal(struct sk_buff *skb) struct rps_dev_flow voidflow, *rflow = &voidflow; int cpu; - preempt_disable(); rcu_read_lock(); cpu = get_rps_cpu(skb->dev, skb, &rflow); @@ -4806,7 +4805,6 @@ static int netif_rx_internal(struct sk_buff *skb) ret = enqueue_to_backlog(skb, cpu, &rflow->last_qtail); rcu_read_unlock(); - preempt_enable(); } else #endif { -- 2.34.1