public inbox for linux-s390@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] kdump: Define KEXEC_NOTE_BYTES arch specific for s390x
@ 2012-01-11 11:30 Michael Holzheu
  2012-01-11 20:45 ` Simon Horman
  0 siblings, 1 reply; 2+ messages in thread
From: Michael Holzheu @ 2012-01-11 11:30 UTC (permalink / raw)
  To: akpm
  Cc: Eric W. Biederman, Vivek Goyal, schwidefsky, heiko.carstens,
	kexec, linux-kernel, linux-s390

From: Michael Holzheu <holzheu@linux.vnet.ibm.com>

kdump only allocates memory for the prstatus ELF note. For s390x,
besides of prstatus multiple ELF notes for various different register
types are stored. Therefore the currently allocated memory is not
sufficient. With this patch the KEXEC_NOTE_BYTES macro can be
defined by architecture code and for s390x it is set to the correct
size now.

Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
---
 arch/s390/include/asm/kexec.h |   18 ++++++++++++++++++
 include/linux/kexec.h         |    2 ++
 2 files changed, 20 insertions(+)

--- a/arch/s390/include/asm/kexec.h
+++ b/arch/s390/include/asm/kexec.h
@@ -42,6 +42,24 @@
 /* The native architecture */
 #define KEXEC_ARCH KEXEC_ARCH_S390
 
+/*
+ * Size for s390x ELF notes per CPU
+ *
+ * Seven notes plus zero note at the end: prstatus, fpregset, timer,
+ * tod_cmp, tod_reg, control regs, and prefix
+ */
+#define KEXEC_NOTE_BYTES \
+	(ALIGN(sizeof(struct elf_note), 4) * 8 + \
+	 ALIGN(sizeof("CORE"), 4) * 7 + \
+	 ALIGN(sizeof(struct elf_prstatus), 4) + \
+	 ALIGN(sizeof(elf_fpregset_t), 4) + \
+	 ALIGN(sizeof(u64), 4) + \
+	 ALIGN(sizeof(u64), 4) + \
+	 ALIGN(sizeof(u32), 4) + \
+	 ALIGN(sizeof(u64) * 16, 4) + \
+	 ALIGN(sizeof(u32), 4) \
+	)
+
 /* Provide a dummy definition to avoid build failures. */
 static inline void crash_setup_regs(struct pt_regs *newregs,
 					struct pt_regs *oldregs) { }
--- a/include/linux/kexec.h
+++ b/include/linux/kexec.h
@@ -50,9 +50,11 @@
  * note header.  For kdump, the code in vmcore.c runs in the context
  * of the second kernel to combine them into one note.
  */
+#ifndef KEXEC_NOTE_BYTES
 #define KEXEC_NOTE_BYTES ( (KEXEC_NOTE_HEAD_BYTES * 2) +		\
 			    KEXEC_CORE_NOTE_NAME_BYTES +		\
 			    KEXEC_CORE_NOTE_DESC_BYTES )
+#endif
 
 /*
  * This structure is used to hold the arguments that are used when loading

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] kdump: Define KEXEC_NOTE_BYTES arch specific for s390x
  2012-01-11 11:30 [PATCH] kdump: Define KEXEC_NOTE_BYTES arch specific for s390x Michael Holzheu
@ 2012-01-11 20:45 ` Simon Horman
  0 siblings, 0 replies; 2+ messages in thread
From: Simon Horman @ 2012-01-11 20:45 UTC (permalink / raw)
  To: Michael Holzheu
  Cc: akpm, linux-s390, heiko.carstens, kexec, linux-kernel,
	Eric W. Biederman, schwidefsky, Vivek Goyal

On Wed, Jan 11, 2012 at 12:30:12PM +0100, Michael Holzheu wrote:
> From: Michael Holzheu <holzheu@linux.vnet.ibm.com>
> 
> kdump only allocates memory for the prstatus ELF note. For s390x,
> besides of prstatus multiple ELF notes for various different register
> types are stored. Therefore the currently allocated memory is not
> sufficient. With this patch the KEXEC_NOTE_BYTES macro can be
> defined by architecture code and for s390x it is set to the correct
> size now.
> 
> Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>

This seems reasonable to me.

Reviewed-by: Simon Horman <horms@verge.net.au>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-01-11 20:45 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-11 11:30 [PATCH] kdump: Define KEXEC_NOTE_BYTES arch specific for s390x Michael Holzheu
2012-01-11 20:45 ` Simon Horman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox