Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux

Pull arm64 fixes from Will Deacon:
"Two small fixes.

The first one is an alternative fix for the SCS patching problem we
thought we'd fixed in -rc1; it turned out not to be robust with all
toolchains/configs, so this is a revert+retry which has seen some more
testing.

The other one simply removes an unused header file, but I couldn't
resist the negative diffstat.

- Really fix shadow call stack patching with LTO=full

- Remove unused (empty) header file generated from the compat vDSO"

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
arm64: vdso32: Remove unused vdso32-offsets.h
arm64: scs: Disable LTO for SCS patching code
arm64: Revert "scs: Work around full LTO issue with dynamic SCS"

+4 -16
+1 -1
arch/arm64/Makefile
··· 195 195 include/generated/vdso-offsets.h arch/arm64/kernel/vdso/vdso.so 196 196 ifdef CONFIG_COMPAT_VDSO 197 197 $(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso32 \ 198 - include/generated/vdso32-offsets.h arch/arm64/kernel/vdso32/vdso.so 198 + arch/arm64/kernel/vdso32/vdso.so 199 199 endif 200 200 endif 201 201
-3
arch/arm64/include/asm/vdso.h
··· 17 17 #ifndef __ASSEMBLY__ 18 18 19 19 #include <generated/vdso-offsets.h> 20 - #ifdef CONFIG_COMPAT_VDSO 21 - #include <generated/vdso32-offsets.h> 22 - #endif 23 20 24 21 #define VDSO_SYMBOL(base, name) \ 25 22 ({ \
+3 -3
arch/arm64/kernel/Makefile
··· 77 77 # We need to prevent the SCS patching code from patching itself. Using 78 78 # -mbranch-protection=none here to avoid the patchable PAC opcodes from being 79 79 # generated triggers an issue with full LTO on Clang, which stops emitting PAC 80 - # instructions altogether. So instead, omit the unwind tables used by the 81 - # patching code, so it will not be able to locate its own PAC instructions. 82 - CFLAGS_patch-scs.o += -fno-asynchronous-unwind-tables -fno-unwind-tables 80 + # instructions altogether. So disable LTO as well for the compilation unit. 81 + CFLAGS_patch-scs.o += -mbranch-protection=none 82 + CFLAGS_REMOVE_patch-scs.o += $(CC_FLAGS_LTO) 83 83 84 84 # Force dependency (vdso*-wrap.S includes vdso.so through incbin) 85 85 $(obj)/vdso-wrap.o: $(obj)/vdso/vdso.so
-9
arch/arm64/kernel/vdso32/Makefile
··· 127 127 targets += vdso.lds 128 128 CPPFLAGS_vdso.lds += -P -C -U$(ARCH) 129 129 130 - include/generated/vdso32-offsets.h: $(obj)/vdso32.so.dbg FORCE 131 - $(call if_changed,vdsosym) 132 - 133 130 # Strip rule for vdso.so 134 131 $(obj)/vdso.so: OBJCOPYFLAGS := -S 135 132 $(obj)/vdso.so: $(obj)/vdso32.so.dbg FORCE ··· 163 166 164 167 quiet_cmd_vdsomunge = MUNGE $@ 165 168 cmd_vdsomunge = $(obj)/$(munge) $< $@ 166 - 167 - # Generate vDSO offsets using helper script (borrowed from the 64-bit vDSO) 168 - gen-vdsosym := $(srctree)/$(src)/../vdso/gen_vdso_offsets.sh 169 - quiet_cmd_vdsosym = VDSOSYM $@ 170 - # The AArch64 nm should be able to read an AArch32 binary 171 - cmd_vdsosym = $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@