]> www.infradead.org Git - users/hch/misc.git/commitdiff
bpf: add missing ops lock around dev_xdp_attach_link
authorStanislav Fomichev <sdf@fomichev.me>
Mon, 31 Mar 2025 14:28:14 +0000 (07:28 -0700)
committerJakub Kicinski <kuba@kernel.org>
Wed, 2 Apr 2025 23:06:15 +0000 (16:06 -0700)
Syzkaller points out that create_link path doesn't grab ops lock,
add it.

Reported-by: syzbot+08936936fe8132f91f1a@syzkaller.appspotmail.com
Closes: https://lore.kernel.org/bpf/67e6b3e8.050a0220.2f068f.0079.GAE@google.com/
Fixes: 97246d6d21c2 ("net: hold netdev instance lock during ndo_bpf")
Signed-off-by: Stanislav Fomichev <sdf@fomichev.me>
Link: https://patch.msgid.link/20250331142814.1887506-1-sdf@fomichev.me
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/core/dev.c

index be17e0660144fc8fa8927760d85c0a6b322e1e94..5d20ff226d5e78a4e203bce7ad61db83c79675f7 100644 (file)
@@ -10284,7 +10284,9 @@ int bpf_xdp_link_attach(const union bpf_attr *attr, struct bpf_prog *prog)
                goto unlock;
        }
 
+       netdev_lock_ops(dev);
        err = dev_xdp_attach_link(dev, &extack, link);
+       netdev_unlock_ops(dev);
        rtnl_unlock();
 
        if (err) {