Skip to content

Commit 95fbef1

Browse files
committed
Merge tag 's390-5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
Pull s390 updates from Heiko Carstens: - Make use of the IBM z16 processor activity instrumentation facility to count cryptography operations: add a new PMU device driver so that perf can make use of this. - Add new IBM z16 extended counter set to cpumf support. - Add vdso randomization support. - Add missing KCSAN instrumentation to barriers and spinlocks, which should make s390's KCSAN support complete. - Add support for IPL-complete-control facility: notify the hypervisor that kexec finished work and the kernel starts. - Improve error logging for PCI. - Various small changes to workaround llvm's integrated assembler limitations, and one bug, to make it finally possible to compile the kernel with llvm's integrated assembler. This also requires to raise the minimum clang version to 14.0.0. - Various other small enhancements, bug fixes, and cleanups all over the place. * tag 's390-5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (48 commits) s390/head: get rid of 31 bit leftovers scripts/min-tool-version.sh: raise minimum clang version to 14.0.0 for s390 s390/boot: do not emit debug info for assembly with llvm's IAS s390/boot: workaround llvm IAS bug s390/purgatory: workaround llvm's IAS limitations s390/entry: workaround llvm's IAS limitations s390/alternatives: remove padding generation code s390/alternatives: provide identical sized orginal/alternative sequences s390/cpumf: add new extended counter set for IBM z16 s390/preempt: disable __preempt_count_add() optimization for PROFILE_ALL_BRANCHES s390/stp: clock_delta should be signed s390/stp: fix todoff size s390/pai: add support for cryptography counters entry: Rename arch_check_user_regs() to arch_enter_from_user_mode() s390/compat: cleanup compat_linux.h header file s390/entry: remove broken and not needed code s390/boot: convert parmarea to C s390/boot: convert initial lowcore to C s390/ptrace: move short psw definitions to ptrace header file s390/head: initialize all new psws ...
2 parents 67c642e + 94d3477 commit 95fbef1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+2553
-1534
lines changed

arch/s390/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ LDFLAGS_vmlinux := -pie
2020
endif
2121
aflags_dwarf := -Wa,-gdwarf-2
2222
KBUILD_AFLAGS_DECOMPRESSOR := $(CLANG_FLAGS) -m64 -D__ASSEMBLY__
23+
ifndef CONFIG_AS_IS_LLVM
2324
KBUILD_AFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO),$(aflags_dwarf))
25+
endif
2426
KBUILD_CFLAGS_DECOMPRESSOR := $(CLANG_FLAGS) -m64 -O2 -mpacked-stack
2527
KBUILD_CFLAGS_DECOMPRESSOR += -DDISABLE_BRANCH_PROFILING -D__NO_FORTIFY
2628
KBUILD_CFLAGS_DECOMPRESSOR += -fno-delete-null-pointer-checks -msoft-float -mbackchain

arch/s390/boot/.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,6 @@
22
image
33
bzImage
44
section_cmp.*
5+
vmlinux
6+
vmlinux.lds
7+
vmlinux.syms

arch/s390/boot/Makefile

Lines changed: 69 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,21 @@ CFLAGS_sclp_early_core.o += -I$(srctree)/drivers/s390/char
3737

3838
obj-y := head.o als.o startup.o mem_detect.o ipl_parm.o ipl_report.o
3939
obj-y += string.o ebcdic.o sclp_early_core.o mem.o ipl_vmparm.o cmdline.o
40-
obj-y += version.o pgm_check_info.o ctype.o
40+
obj-y += version.o pgm_check_info.o ctype.o ipl_data.o
4141
obj-$(findstring y, $(CONFIG_PROTECTED_VIRTUALIZATION_GUEST) $(CONFIG_PGSTE)) += uv.o
4242
obj-$(CONFIG_RELOCATABLE) += machine_kexec_reloc.o
4343
obj-$(CONFIG_RANDOMIZE_BASE) += kaslr.o
44-
targets := bzImage startup.a section_cmp.boot.data section_cmp.boot.preserved.data $(obj-y)
45-
subdir- := compressed
44+
obj-y += $(if $(CONFIG_KERNEL_UNCOMPRESSED),,decompressor.o) info.o
45+
obj-$(CONFIG_KERNEL_ZSTD) += clz_ctz.o
46+
obj-all := $(obj-y) piggy.o syms.o
47+
48+
targets := bzImage section_cmp.boot.data section_cmp.boot.preserved.data $(obj-y)
49+
targets += vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2
50+
targets += vmlinux.bin.xz vmlinux.bin.lzma vmlinux.bin.lzo vmlinux.bin.lz4
51+
targets += vmlinux.bin.zst info.bin syms.bin vmlinux.syms $(obj-all)
4652

4753
OBJECTS := $(addprefix $(obj)/,$(obj-y))
54+
OBJECTS_ALL := $(addprefix $(obj)/,$(obj-all))
4855

4956
quiet_cmd_section_cmp = SECTCMP $*
5057
define cmd_section_cmp
@@ -59,14 +66,67 @@ define cmd_section_cmp
5966
touch $@
6067
endef
6168

62-
$(obj)/bzImage: $(obj)/compressed/vmlinux $(obj)/section_cmp.boot.data $(obj)/section_cmp.boot.preserved.data FORCE
69+
$(obj)/bzImage: $(obj)/vmlinux $(obj)/section_cmp.boot.data $(obj)/section_cmp.boot.preserved.data FORCE
6370
$(call if_changed,objcopy)
6471

65-
$(obj)/section_cmp%: vmlinux $(obj)/compressed/vmlinux FORCE
72+
$(obj)/section_cmp%: vmlinux $(obj)/vmlinux FORCE
6673
$(call if_changed,section_cmp)
6774

68-
$(obj)/compressed/vmlinux: $(obj)/startup.a FORCE
69-
$(Q)$(MAKE) $(build)=$(obj)/compressed $@
75+
LDFLAGS_vmlinux := --oformat $(LD_BFD) -e startup --build-id=sha1 -T
76+
$(obj)/vmlinux: $(obj)/vmlinux.lds $(OBJECTS_ALL) FORCE
77+
$(call if_changed,ld)
78+
79+
LDFLAGS_vmlinux.syms := --oformat $(LD_BFD) -e startup -T
80+
$(obj)/vmlinux.syms: $(obj)/vmlinux.lds $(OBJECTS) FORCE
81+
$(call if_changed,ld)
82+
83+
quiet_cmd_dumpsyms = DUMPSYMS $<
84+
define cmd_dumpsyms
85+
$(NM) -n -S --format=bsd "$<" | sed -nE 's/^0*([0-9a-fA-F]+) 0*([0-9a-fA-F]+) [tT] ([^ ]*)$$/\1 \2 \3/p' | tr '\n' '\0' > "$@"
86+
endef
87+
88+
$(obj)/syms.bin: $(obj)/vmlinux.syms FORCE
89+
$(call if_changed,dumpsyms)
90+
91+
OBJCOPYFLAGS_syms.o := -I binary -O elf64-s390 -B s390:64-bit --rename-section .data=.decompressor.syms
92+
$(obj)/syms.o: $(obj)/syms.bin FORCE
93+
$(call if_changed,objcopy)
94+
95+
OBJCOPYFLAGS_info.bin := -O binary --only-section=.vmlinux.info --set-section-flags .vmlinux.info=load
96+
$(obj)/info.bin: vmlinux FORCE
97+
$(call if_changed,objcopy)
98+
99+
OBJCOPYFLAGS_info.o := -I binary -O elf64-s390 -B s390:64-bit --rename-section .data=.vmlinux.info
100+
$(obj)/info.o: $(obj)/info.bin FORCE
101+
$(call if_changed,objcopy)
102+
103+
OBJCOPYFLAGS_vmlinux.bin := -O binary --remove-section=.comment --remove-section=.vmlinux.info -S
104+
$(obj)/vmlinux.bin: vmlinux FORCE
105+
$(call if_changed,objcopy)
106+
107+
suffix-$(CONFIG_KERNEL_GZIP) := .gz
108+
suffix-$(CONFIG_KERNEL_BZIP2) := .bz2
109+
suffix-$(CONFIG_KERNEL_LZ4) := .lz4
110+
suffix-$(CONFIG_KERNEL_LZMA) := .lzma
111+
suffix-$(CONFIG_KERNEL_LZO) := .lzo
112+
suffix-$(CONFIG_KERNEL_XZ) := .xz
113+
suffix-$(CONFIG_KERNEL_ZSTD) := .zst
70114

71-
$(obj)/startup.a: $(OBJECTS) FORCE
72-
$(call if_changed,ar)
115+
$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
116+
$(call if_changed,gzip)
117+
$(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FORCE
118+
$(call if_changed,bzip2_with_size)
119+
$(obj)/vmlinux.bin.lz4: $(obj)/vmlinux.bin FORCE
120+
$(call if_changed,lz4_with_size)
121+
$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE
122+
$(call if_changed,lzma_with_size)
123+
$(obj)/vmlinux.bin.lzo: $(obj)/vmlinux.bin FORCE
124+
$(call if_changed,lzo_with_size)
125+
$(obj)/vmlinux.bin.xz: $(obj)/vmlinux.bin FORCE
126+
$(call if_changed,xzkern_with_size)
127+
$(obj)/vmlinux.bin.zst: $(obj)/vmlinux.bin FORCE
128+
$(call if_changed,zstd22_with_size)
129+
130+
OBJCOPYFLAGS_piggy.o := -I binary -O elf64-s390 -B s390:64-bit --rename-section .data=.vmlinux.bin.compressed
131+
$(obj)/piggy.o: $(obj)/vmlinux.bin$(suffix-y) FORCE
132+
$(call if_changed,objcopy)

arch/s390/boot/boot.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@
22
#ifndef BOOT_BOOT_H
33
#define BOOT_BOOT_H
44

5-
#include <asm/extable.h>
65
#include <linux/types.h>
76

7+
#define IPL_START 0x200
8+
9+
#ifndef __ASSEMBLY__
10+
811
void startup_kernel(void);
912
unsigned long detect_memory(void);
1013
bool is_ipl_block_dump(void);
@@ -31,4 +34,5 @@ extern char _stack_start[], _stack_end[];
3134

3235
unsigned long read_ipl_report(unsigned long safe_offset);
3336

37+
#endif /* __ASSEMBLY__ */
3438
#endif /* BOOT_BOOT_H */
File renamed without changes.

arch/s390/boot/compressed/.gitignore

Lines changed: 0 additions & 4 deletions
This file was deleted.

arch/s390/boot/compressed/Makefile

Lines changed: 0 additions & 86 deletions
This file was deleted.

0 commit comments

Comments
 (0)