diff options
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/Makefile | 1 | ||||
-rw-r--r-- | arch/s390/include/asm/kexec.h | 18 | ||||
-rw-r--r-- | arch/s390/kernel/vmlinux.lds.S | 4 |
3 files changed, 20 insertions, 3 deletions
diff --git a/arch/s390/Makefile b/arch/s390/Makefile index e9f353341693..0ad2f1e1ce9e 100644 --- a/arch/s390/Makefile +++ b/arch/s390/Makefile | |||
@@ -88,7 +88,6 @@ KBUILD_CFLAGS += -pipe -fno-strength-reduce -Wno-sign-compare | |||
88 | KBUILD_AFLAGS += $(aflags-y) | 88 | KBUILD_AFLAGS += $(aflags-y) |
89 | 89 | ||
90 | OBJCOPYFLAGS := -O binary | 90 | OBJCOPYFLAGS := -O binary |
91 | LDFLAGS_vmlinux := -e start | ||
92 | 91 | ||
93 | head-y := arch/s390/kernel/head.o | 92 | head-y := arch/s390/kernel/head.o |
94 | head-y += arch/s390/kernel/$(if $(CONFIG_64BIT),head64.o,head31.o) | 93 | head-y += arch/s390/kernel/$(if $(CONFIG_64BIT),head64.o,head31.o) |
diff --git a/arch/s390/include/asm/kexec.h b/arch/s390/include/asm/kexec.h index cf4e47b0948c..3f30dac804ea 100644 --- a/arch/s390/include/asm/kexec.h +++ b/arch/s390/include/asm/kexec.h | |||
@@ -42,6 +42,24 @@ | |||
42 | /* The native architecture */ | 42 | /* The native architecture */ |
43 | #define KEXEC_ARCH KEXEC_ARCH_S390 | 43 | #define KEXEC_ARCH KEXEC_ARCH_S390 |
44 | 44 | ||
45 | /* | ||
46 | * Size for s390x ELF notes per CPU | ||
47 | * | ||
48 | * Seven notes plus zero note at the end: prstatus, fpregset, timer, | ||
49 | * tod_cmp, tod_reg, control regs, and prefix | ||
50 | */ | ||
51 | #define KEXEC_NOTE_BYTES \ | ||
52 | (ALIGN(sizeof(struct elf_note), 4) * 8 + \ | ||
53 | ALIGN(sizeof("CORE"), 4) * 7 + \ | ||
54 | ALIGN(sizeof(struct elf_prstatus), 4) + \ | ||
55 | ALIGN(sizeof(elf_fpregset_t), 4) + \ | ||
56 | ALIGN(sizeof(u64), 4) + \ | ||
57 | ALIGN(sizeof(u64), 4) + \ | ||
58 | ALIGN(sizeof(u32), 4) + \ | ||
59 | ALIGN(sizeof(u64) * 16, 4) + \ | ||
60 | ALIGN(sizeof(u32), 4) \ | ||
61 | ) | ||
62 | |||
45 | /* Provide a dummy definition to avoid build failures. */ | 63 | /* Provide a dummy definition to avoid build failures. */ |
46 | static inline void crash_setup_regs(struct pt_regs *newregs, | 64 | static inline void crash_setup_regs(struct pt_regs *newregs, |
47 | struct pt_regs *oldregs) { } | 65 | struct pt_regs *oldregs) { } |
diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S index e4c79ebb40e6..21109c63eb12 100644 --- a/arch/s390/kernel/vmlinux.lds.S +++ b/arch/s390/kernel/vmlinux.lds.S | |||
@@ -9,12 +9,12 @@ | |||
9 | #ifndef CONFIG_64BIT | 9 | #ifndef CONFIG_64BIT |
10 | OUTPUT_FORMAT("elf32-s390", "elf32-s390", "elf32-s390") | 10 | OUTPUT_FORMAT("elf32-s390", "elf32-s390", "elf32-s390") |
11 | OUTPUT_ARCH(s390) | 11 | OUTPUT_ARCH(s390) |
12 | ENTRY(_start) | 12 | ENTRY(startup) |
13 | jiffies = jiffies_64 + 4; | 13 | jiffies = jiffies_64 + 4; |
14 | #else | 14 | #else |
15 | OUTPUT_FORMAT("elf64-s390", "elf64-s390", "elf64-s390") | 15 | OUTPUT_FORMAT("elf64-s390", "elf64-s390", "elf64-s390") |
16 | OUTPUT_ARCH(s390:64-bit) | 16 | OUTPUT_ARCH(s390:64-bit) |
17 | ENTRY(_start) | 17 | ENTRY(startup) |
18 | jiffies = jiffies_64; | 18 | jiffies = jiffies_64; |
19 | #endif | 19 | #endif |
20 | 20 | ||