summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/stackcollapse.py
diff options
context:
space:
mode:
authorYiqi Sun <sunyiqixm@gmail.com>2026-09-15 17:50:17 +0800
committerJakub Kicinski <kuba@kernel.org>2026-09-18 17:24:10 -0700
commitd2c31b837406395e576afeb25958c98e9938f3f6 (patch)
tree11f9eb058ba877ac4129008ad12f5a90d5c3ec96 /tools/perf/scripts/python/stackcollapse.py
parent6c01564da38207b8cd1f86365fabf45963f394b2 (diff)
downloadlinux-d2c31b837406395e576afeb25958c98e9938f3f6.tar.gz
linux-d2c31b837406395e576afeb25958c98e9938f3f6.zip
sctp: avoid livelock while updating retransmit path
sctp_assoc_update_retran_path() can loop forever when every remaining transport, including retran_path, is SCTP_UNCONFIRMED: the state check runs before the wraparound test, so the loop cannot observe that it has completed a full pass. Fix this by considering a transport only when it is not UNCONFIRMED, then checking whether the walk has returned to retran_path. This makes the full-pass termination independent of the transport state while preserving the existing fallback selection semantics. Also restore the NULL guard around the retran_path assignment. In the all-UNCONFIRMED case there is no eligible replacement transport, and installing NULL would leave later retransmit-path users and the debug print with a NULL path. Fixes: 4c47af4d5eb2 ("net: sctp: rework multihoming retransmission path selection to rfc4960") Signed-off-by: Yiqi Sun <sunyiqixm@gmail.com> Acked-by: Xin Long <lucien.xin@gmail.com> Link: https://patch.msgid.link/20260915095017.942213-1-sunyiqixm@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions