aboutsummaryrefslogtreecommitdiffstats
path: root/lib/timerqueue.c
diff options
context:
space:
mode:
authorAmery Hung <[email protected]>2025-03-05 18:20:57 +0000
committerAlexei Starovoitov <[email protected]>2025-03-15 18:48:57 +0000
commit8bda5b787dea43a7102d5797756c60d0a905932a (patch)
treea46f1afa97d100a54980dad781f6ae9616fa7914 /lib/timerqueue.c
parentselftests/bpf: Allow assigning traffic monitor print function (diff)
downloadkernel-8bda5b787dea43a7102d5797756c60d0a905932a.tar.gz
kernel-8bda5b787dea43a7102d5797756c60d0a905932a.zip
selftests/bpf: Fix dangling stdout seen by traffic monitor thread
Traffic monitor thread may see dangling stdout as the main thread closes and reassigns stdout without protection. This happens when the main thread finishes one subtest and moves to another one in the same netns_new() scope. The issue can be reproduced by running test_progs repeatedly with traffic monitor enabled: for ((i=1;i<=100;i++)); do ./test_progs -a flow_dissector_skb* -m '*' done For restoring stdout in crash_handler(), since it does not really care about closing stdout, simlpy flush stdout and restore it to the original one. Then, Fix the issue by consolidating stdio_restore_cleanup() and stdio_restore(), and protecting the use/close/assignment of stdout with a lock. The locking in the main thread is always performed regradless of whether traffic monitor is running or not for simplicity. It won't have any side-effect. Signed-off-by: Amery Hung <[email protected]> Signed-off-by: Martin KaFai Lau <[email protected]> Acked-by: Eduard Zingerman <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Alexei Starovoitov <[email protected]>
Diffstat (limited to 'lib/timerqueue.c')
0 files changed, 0 insertions, 0 deletions