diff options
| author | Eric Dumazet <[email protected]> | 2025-06-06 16:51:27 +0000 |
|---|---|---|
| committer | Jakub Kicinski <[email protected]> | 2025-06-09 21:21:36 +0000 |
| commit | 82ffbe7776d0ac084031f114167712269bf3d832 (patch) | |
| tree | 3f51b95734274c5a4183f31a4b15c6b5cc957cc1 /drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | |
| parent | net: enetc: fix the netc-lib driver build dependency (diff) | |
| download | kernel-82ffbe7776d0ac084031f114167712269bf3d832.tar.gz kernel-82ffbe7776d0ac084031f114167712269bf3d832.zip | |
net_sched: sch_sfq: fix a potential crash on gso_skb handling
SFQ has an assumption of always being able to queue at least one packet.
However, after the blamed commit, sch->q.len can be inflated by packets
in sch->gso_skb, and an enqueue() on an empty SFQ qdisc can be followed
by an immediate drop.
Fix sfq_drop() to properly clear q->tail in this situation.
Tested:
ip netns add lb
ip link add dev to-lb type veth peer name in-lb netns lb
ethtool -K to-lb tso off # force qdisc to requeue gso_skb
ip netns exec lb ethtool -K in-lb gro on # enable NAPI
ip link set dev to-lb up
ip -netns lb link set dev in-lb up
ip addr add dev to-lb 192.168.20.1/24
ip -netns lb addr add dev in-lb 192.168.20.2/24
tc qdisc replace dev to-lb root sfq limit 100
ip netns exec lb netserver
netperf -H 192.168.20.2 -l 100 &
netperf -H 192.168.20.2 -l 100 &
netperf -H 192.168.20.2 -l 100 &
netperf -H 192.168.20.2 -l 100 &
Fixes: a53851e2c321 ("net: sched: explicit locking in gso_cpu fallback")
Reported-by: Marcus Wichelmann <[email protected]>
Closes: https://lore.kernel.org/netdev/[email protected]/
Signed-off-by: Eric Dumazet <[email protected]>
Reviewed-by: Toke Høiland-Jørgensen <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c')
0 files changed, 0 insertions, 0 deletions
