aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390
diff options
context:
space:
mode:
authorMichael Holzheu <holzheu@linux.vnet.ibm.com>2011-10-30 10:16:42 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2011-10-30 10:16:42 -0400
commitd38593f9387055566b782d00d38d9a347a96e7d9 (patch)
tree7f617f84b8b176a399abc9d6672604a31706b3bf /arch/s390
parentfa8ff292bb4844cc0b66b7b24d611eb7177f7ded (diff)
[S390] Export vmcoreinfo note
This patch defines for s390 an ABI defined pointer to the vmcoreinfo note at a well known address. With this patch tools are able to find this information in dumps created by stand-alone or hypervisor dump tools. Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390')
-rw-r--r--arch/s390/include/asm/lowcore.h10
-rw-r--r--arch/s390/kernel/setup.c10
2 files changed, 16 insertions, 4 deletions
diff --git a/arch/s390/include/asm/lowcore.h b/arch/s390/include/asm/lowcore.h
index e85c911aabf0..4f990a5e5b59 100644
--- a/arch/s390/include/asm/lowcore.h
+++ b/arch/s390/include/asm/lowcore.h
@@ -151,10 +151,11 @@ struct _lowcore {
151 */ 151 */
152 __u32 ipib; /* 0x0e00 */ 152 __u32 ipib; /* 0x0e00 */
153 __u32 ipib_checksum; /* 0x0e04 */ 153 __u32 ipib_checksum; /* 0x0e04 */
154 __u32 vmcore_info; /* 0x0e08 */
154 155
155 /* 64 bit save area */ 156 /* 64 bit save area */
156 __u64 save_area_64; /* 0x0e08 */ 157 __u64 save_area_64; /* 0x0e0c */
157 __u8 pad_0x0e10[0x0f00-0x0e10]; /* 0x0e10 */ 158 __u8 pad_0x0e14[0x0f00-0x0e14]; /* 0x0e14 */
158 159
159 /* Extended facility list */ 160 /* Extended facility list */
160 __u64 stfle_fac_list[32]; /* 0x0f00 */ 161 __u64 stfle_fac_list[32]; /* 0x0f00 */
@@ -290,10 +291,11 @@ struct _lowcore {
290 */ 291 */
291 __u64 ipib; /* 0x0e00 */ 292 __u64 ipib; /* 0x0e00 */
292 __u32 ipib_checksum; /* 0x0e08 */ 293 __u32 ipib_checksum; /* 0x0e08 */
294 __u64 vmcore_info; /* 0x0e0c */
293 295
294 /* 64 bit save area */ 296 /* 64 bit save area */
295 __u64 save_area_64; /* 0x0e0c */ 297 __u64 save_area_64; /* 0x0e14 */
296 __u8 pad_0x0e14[0x0f00-0x0e14]; /* 0x0e14 */ 298 __u8 pad_0x0e1c[0x0f00-0x0e1c]; /* 0x0e1c */
297 299
298 /* Extended facility list */ 300 /* Extended facility list */
299 __u64 stfle_fac_list[32]; /* 0x0f00 */ 301 __u64 stfle_fac_list[32]; /* 0x0f00 */
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
index b5a30412b2e5..63c81de665ec 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -558,6 +558,15 @@ static void __init setup_restart_psw(void)
558 copy_to_absolute_zero(&S390_lowcore.restart_psw, &psw, sizeof(psw)); 558 copy_to_absolute_zero(&S390_lowcore.restart_psw, &psw, sizeof(psw));
559} 559}
560 560
561static void __init setup_vmcoreinfo(void)
562{
563#ifdef CONFIG_KEXEC
564 unsigned long ptr = paddr_vmcoreinfo_note();
565
566 copy_to_absolute_zero(&S390_lowcore.vmcore_info, &ptr, sizeof(ptr));
567#endif
568}
569
561#ifdef CONFIG_CRASH_DUMP 570#ifdef CONFIG_CRASH_DUMP
562 571
563/* 572/*
@@ -1022,6 +1031,7 @@ setup_arch(char **cmdline_p)
1022 reserve_crashkernel(); 1031 reserve_crashkernel();
1023 setup_memory(); 1032 setup_memory();
1024 setup_resources(); 1033 setup_resources();
1034 setup_vmcoreinfo();
1025 setup_restart_psw(); 1035 setup_restart_psw();
1026 setup_lowcore(); 1036 setup_lowcore();
1027 1037