diff options
author | Michael Holzheu <holzheu@linux.vnet.ibm.com> | 2011-10-30 10:16:42 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2011-10-30 10:16:42 -0400 |
commit | d38593f9387055566b782d00d38d9a347a96e7d9 (patch) | |
tree | 7f617f84b8b176a399abc9d6672604a31706b3bf /arch/s390 | |
parent | fa8ff292bb4844cc0b66b7b24d611eb7177f7ded (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.h | 10 | ||||
-rw-r--r-- | arch/s390/kernel/setup.c | 10 |
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 | ||
561 | static 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 | ||