selftest/bpf: Ensure no module loading in bpf_setsockopt(TCP_CONGESTION)
authorMartin KaFai Lau <martin.lau@linux.dev>
Tue, 30 Aug 2022 23:19:53 +0000 (16:19 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Wed, 31 Aug 2022 20:22:29 +0000 (22:22 +0200)
commit197072945a708d62181895409effdfcda80c7798
treeec9c9a9ecaa2b308aec7cd238ce61b157658dab4
parent84e5a0f208ca341ec1ea88a97c40849a2d541faa
selftest/bpf: Ensure no module loading in bpf_setsockopt(TCP_CONGESTION)

This patch adds a test to ensure bpf_setsockopt(TCP_CONGESTION, "not_exist")
will not trigger the kernel module autoload.

Before the fix:

  [   40.535829] BUG: sleeping function called from invalid context at include/linux/sched/mm.h:274
  [...]
  [   40.552134]  tcp_ca_find_autoload.constprop.0+0xcb/0x200
  [   40.552689]  tcp_set_congestion_control+0x99/0x7b0
  [   40.553203]  do_tcp_setsockopt+0x3ed/0x2240
  [...]
  [   40.556041]  __bpf_setsockopt+0x124/0x640

Signed-off-by: Martin KaFai Lau <martin.lau@linux.dev>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20220830231953.792412-1-martin.lau@linux.dev
tools/testing/selftests/bpf/progs/setget_sockopt.c