On Tue, May 09, 2023 at 08:06:32AM +0200, Louis Peens wrote: > From: Tianyu Yuan <tianyu.yuan@xxxxxxxxxxxx> > > When CONFIG_PROVE_LOCKING and CONFIG_PROVE_RCU are enabled, using > OVS with vf reprs on bridge will lead to following log in dmesg: > > ''' > .../nfp/flower/main.c:269 suspicious rcu_dereference_check() usage! > > other info that might help us debug this: > > rcu_scheduler_active = 2, debug_locks = 1 > no locks held by swapper/15/0. > > ...... > Call Trace: > <IRQ> > dump_stack_lvl+0x8c/0xa0 > lockdep_rcu_suspicious+0x118/0x1a0 > nfp_flower_dev_get+0xc1/0x240 [nfp] > nfp_nfd3_rx+0x419/0xb90 [nfp] > ? validate_chain+0x640/0x1880 > nfp_nfd3_poll+0x3e/0x180 [nfp] > __napi_poll+0x28/0x1d0 > net_rx_action+0x2bd/0x3c0 > ? _raw_spin_unlock_irqrestore+0x42/0x70 > __do_softirq+0xc3/0x3c6 > irq_exit_rcu+0xeb/0x130 > common_interrupt+0xb9/0xd0 > </IRQ> > <TASK> > ...... > </TASK> > ''' > > This debug log is caused by missing of rcu_read_lock()/unlock(). > In previous patch rcu_read_lock/unlock are removed while they are > still needed when calling rcu_dereference() in nfp_app_dev_get(). > > Fixes: d5789621b658 ("nfp: Remove rcu_read_lock() around XDP program invocation") > CC: stable@xxxxxxxxxxxxxxx > Signed-off-by: Tianyu Yuan <tianyu.yuan@xxxxxxxxxxxx> > Acked-by: Simon Horman <simon.horman@xxxxxxxxxxxx> > Signed-off-by: Louis Peens <louis.peens@xxxxxxxxxxxx> > --- > drivers/net/ethernet/netronome/nfp/nfd3/dp.c | 4 ++-- > drivers/net/ethernet/netronome/nfp/nfd3/xsk.c | 2 +- > drivers/net/ethernet/netronome/nfp/nfdk/dp.c | 4 ++-- > drivers/net/ethernet/netronome/nfp/nfp_app.h | 16 ++++++++++++++++ > 4 files changed, 21 insertions(+), 5 deletions(-) > Thanks, Reviewed-by: Leon Romanovsky <leonro@xxxxxxxxxx>