bpf: net_sched: Fix using bpf qdisc as default qdisc
authorAmery Hung <ameryhung@gmail.com>
Tue, 29 Apr 2025 19:21:28 +0000 (12:21 -0700)
committerMartin KaFai Lau <martin.lau@kernel.org>
Tue, 29 Apr 2025 21:25:41 +0000 (14:25 -0700)
commit7625645e69454f984f09ea450b9eb1293467aa39
tree8d022995020f5143d1e3a0e30a2c3184becf9045
parent1ce65102d2d3c54862f7b59479135168ed512cd2
bpf: net_sched: Fix using bpf qdisc as default qdisc

Use bpf_try_module_get()/bpf_module_put() instead of try_module_get()/
module_put() when handling default qdisc since users can assign a bpf
qdisc to it.

To trigger the bug:
$ bpftool struct_ops register bpf_qdisc_fq.bpf.o /sys/fs/bpf
$ echo bpf_fq > /proc/sys/net/core/default_qdisc

Fixes: c8240344956e ("bpf: net_sched: Support implementation of Qdisc_ops in bpf")
Signed-off-by: Amery Hung <ameryhung@gmail.com>
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Link: https://patch.msgid.link/20250429192128.3860571-1-ameryhung@gmail.com
net/sched/sch_api.c
net/sched/sch_generic.c