Commit 93e064ce authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull modules fixes from Luis Chamberlain:
 "Three fixes, the main one build that we build the kallsyms test
  modules all over again if we just run make twice"

* tag 'modules-6.13-rc1-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/modules/linux:
  selftests: find_symbol: Actually use load_mod() parameter
  selftests: kallsyms: fix and clarify current test boundaries
  selftests: kallsyms: fix double build stupidity
parents 29caf07e c5efad88
Loading
Loading
Loading
Loading
+31 −1
Original line number Diff line number Diff line
@@ -3003,9 +3003,39 @@ config TEST_KALLSYMS_D
	tristate
	depends on m

choice
	prompt "Kallsym test range"
	default TEST_KALLSYMS_LARGE
	help
	  Selecting something other than "Fast" will enable tests which slow
	  down the build and may crash your build.

config TEST_KALLSYMS_FAST
	bool "Fast builds"
	help
	  You won't really be testing kallsysms, so this just helps fast builds
	  when allmodconfig is used..

config TEST_KALLSYMS_LARGE
	bool "Enable testing kallsyms with large exports"
	help
	  This will enable larger number of symbols. This will slow down
	  your build considerably.

config TEST_KALLSYMS_MAX
	bool "Known kallsysms limits"
	help
	  This will enable exports to the point we know we'll start crashing
	  builds.

endchoice

config TEST_KALLSYMS_NUMSYMS
	int "test kallsyms number of symbols"
	default 100
	range 2 10000
	default 2 if TEST_KALLSYMS_FAST
	default 100 if TEST_KALLSYMS_LARGE
	default 10000 if TEST_KALLSYMS_MAX
	help
	  The number of symbols to create on TEST_KALLSYMS_A, only one of which
	  module TEST_KALLSYMS_B will use. This also will be used
+8 −9
Original line number Diff line number Diff line
@@ -3,13 +3,12 @@ obj-$(CONFIG_TEST_KALLSYMS_B) += test_kallsyms_b.o
obj-$(CONFIG_TEST_KALLSYMS_C) += test_kallsyms_c.o
obj-$(CONFIG_TEST_KALLSYMS_D) += test_kallsyms_d.o

$(obj)/%.c: FORCE
	@$(kecho) "  GEN     $@"
	$(Q)$(srctree)/lib/tests/module/gen_test_kallsyms.sh $@\
quiet_cmd_gen_test_kallsyms = GEN     $@
	cmd_gen_test_kallsyms = $< $@ \
	$(CONFIG_TEST_KALLSYMS_NUMSYMS) \
	$(CONFIG_TEST_KALLSYMS_SCALE_FACTOR)

clean-files += test_kallsyms_a.c
clean-files += test_kallsyms_b.c
clean-files += test_kallsyms_c.c
clean-files += test_kallsyms_d.c
$(obj)/%.c: $(src)/gen_test_kallsyms.sh FORCE
	$(call if_changed,gen_test_kallsyms)

targets += $(foreach x, a b c d, test_kallsyms_$(x).c)
+7 −2
Original line number Diff line number Diff line
@@ -7,6 +7,11 @@ NUM_SYMS=$2
SCALE_FACTOR=$3
TEST_TYPE=$(echo $TARGET | sed -e 's|lib/tests/module/test_kallsyms_||g')
TEST_TYPE=$(echo $TEST_TYPE | sed -e 's|.c||g')
FIRST_B_LOOKUP=1

if [[ $NUM_SYMS -gt 2 ]]; then
	FIRST_B_LOOKUP=$((NUM_SYMS/2))
fi

gen_template_module_header()
{
@@ -52,10 +57,10 @@ ____END_MODULE

gen_template_module_data_b()
{
	printf "\nextern int auto_test_a_%010d;\n\n" 28
	printf "\nextern int auto_test_a_%010d;\n\n" $FIRST_B_LOOKUP
	echo "static int auto_runtime_test(void)"
	echo "{"
	printf "\nreturn auto_test_a_%010d;\n" 28
	printf "\nreturn auto_test_a_%010d;\n" $FIRST_B_LOOKUP
	echo "}"
}

+2 −2
Original line number Diff line number Diff line
@@ -44,10 +44,10 @@ load_mod()
	local ARCH="$(uname -m)"
	case "${ARCH}" in
	x86_64)
		perf stat $STATS $MODPROBE test_kallsyms_b
		perf stat $STATS $MODPROBE $MOD
		;;
	*)
		time $MODPROBE test_kallsyms_b
		time $MODPROBE $MOD
		exit 1
		;;
	esac