-
Ilya Maximets authored
There are 2 call chains: a) xsk_bind --> xdp_umem_assign_dev b) unregister_netdevice_queue --> xsk_notifier with the following locking order: a) xs->mutex --> rtnl_lock b) rtnl_lock --> xdp.lock --> xs->mutex Different order of taking 'xs->mutex' and 'rtnl_lock' could produce a deadlock here. Fix that by moving the 'rtnl_lock' before 'xs->lock' in the bind call chain (a). Reported-by: syzbot+bf64ec93de836d7f4c2c@syzkaller.appspotmail.com Fixes: 455302d1 ("xdp: fix hang while unregistering device bound to xdp socket") Signed-off-by:
Ilya Maximets <i.maximets@samsung.com> Acked-by:
Jonathan Lemon <jonathan.lemon@gmail.com> Signed-off-by:
Daniel Borkmann <daniel@iogearbox.net>
5464c3a0