Skip to content

Commit c4e7895

Browse files
Vasily GorbikAlexander Gordeev
authored andcommitted
s390/nospec: build expoline.o for modules_prepare target
When CONFIG_EXPOLINE_EXTERN is used expoline thunks are generated from arch/s390/lib/expoline.S and postlinked into every module. This is also true for external modules. Add expoline.o build to the modules_prepare target. Fixes: 1d2ad08 ("s390/nospec: add an option to use thunk-extern") Reported-by: Joe Lawrence <joe.lawrence@redhat.com> Tested-by: Sumanth Korikkar <sumanthk@linux.ibm.com> Acked-by: Sumanth Korikkar <sumanthk@linux.ibm.com> Tested-by: C. Erastus Toe <ctoe@redhat.com> Tested-by: Joe Lawrence <joe.lawrence@redhat.com> Link: https://lore.kernel.org/r/patch-1.thread-d13b6c.git-a2387a74dc49.your-ad-here.call-01656331067-ext-4899@work.hours Signed-off-by: Vasily Gorbik <gor@linux.ibm.com> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
1 parent d7d488f commit c4e7895

File tree

4 files changed

+12
-2
lines changed

4 files changed

+12
-2
lines changed

arch/s390/Makefile

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ endif
8282

8383
ifdef CONFIG_EXPOLINE
8484
ifdef CONFIG_EXPOLINE_EXTERN
85-
KBUILD_LDFLAGS_MODULE += arch/s390/lib/expoline.o
85+
KBUILD_LDFLAGS_MODULE += arch/s390/lib/expoline/expoline.o
8686
CC_FLAGS_EXPOLINE := -mindirect-branch=thunk-extern
8787
CC_FLAGS_EXPOLINE += -mfunction-return=thunk-extern
8888
else
@@ -163,6 +163,12 @@ vdso_prepare: prepare0
163163
$(Q)$(MAKE) $(build)=arch/s390/kernel/vdso64 include/generated/vdso64-offsets.h
164164
$(if $(CONFIG_COMPAT),$(Q)$(MAKE) \
165165
$(build)=arch/s390/kernel/vdso32 include/generated/vdso32-offsets.h)
166+
167+
ifdef CONFIG_EXPOLINE_EXTERN
168+
modules_prepare: expoline_prepare
169+
expoline_prepare: prepare0
170+
$(Q)$(MAKE) $(build)=arch/s390/lib/expoline arch/s390/lib/expoline/expoline.o
171+
endif
166172
endif
167173

168174
# Don't use tabs in echo arguments

arch/s390/lib/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ lib-y += delay.o string.o uaccess.o find.o spinlock.o
77
obj-y += mem.o xor.o
88
lib-$(CONFIG_KPROBES) += probes.o
99
lib-$(CONFIG_UPROBES) += probes.o
10-
obj-$(CONFIG_EXPOLINE_EXTERN) += expoline.o
1110
obj-$(CONFIG_S390_KPROBES_SANITY_TEST) += test_kprobes_s390.o
1211
test_kprobes_s390-objs += test_kprobes_asm.o test_kprobes.o
1312

@@ -22,3 +21,5 @@ obj-$(CONFIG_S390_MODULES_SANITY_TEST) += test_modules.o
2221
obj-$(CONFIG_S390_MODULES_SANITY_TEST_HELPERS) += test_modules_helpers.o
2322

2423
lib-$(CONFIG_FUNCTION_ERROR_INJECTION) += error-inject.o
24+
25+
obj-$(CONFIG_EXPOLINE_EXTERN) += expoline/

arch/s390/lib/expoline/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
3+
obj-y += expoline.o
File renamed without changes.

0 commit comments

Comments
 (0)