On Thu, May 22, 2025 at 03:13:46PM -0700, Jakub Kicinski wrote: > On Wed, 21 May 2025 03:25:03 -0700 Saurabh Sengar wrote: > > The MANA driver's probe registers netdevice via the following call chain: > > > > mana_probe() > > register_netdev() > > register_netdevice() > > > > register_netdevice() calls notifier callback for netvsc driver, > > holding the netdev mutex via netdev_lock_ops(). > > > > Further this netvsc notifier callback end up attempting to acquire the > > same lock again in dev_xdp_propagate() leading to deadlock. > > > > netvsc_netdev_event() > > netvsc_vf_setxdp() > > dev_xdp_propagate() > > > > This deadlock was not observed so far because net_shaper_ops was never set, > > The lock is on the VF, I think you meant to say that no device you use > in Azure is ops locked?
That's right. > > There's also the call to netvsc_register_vf() on probe path, please > fix or explain why it doesn't need locking in the commit message. On rethinking I realize you were referring to the netvsc_probe() path not mana_probe(). Since this lock is effectively a no-op, it doesn't really matter whether it's there or not. However, I think we can revisit this when we add ops for any of the VFs. - Saurabh