linux/arch/s390
Philipp Rudo 8cce437fbb s390/kdump: Fix elfcorehdr size calculation
Before the memory for the elfcorehdr is allocated the required size is
estimated with

       alloc_size = 0x1000 + get_cpu_cnt() * 0x4a0 +
               mem_chunk_cnt * sizeof(Elf64_Phdr);

Where 0x4a0 is used as size for the ELF notes to store the register
contend. This size is 8 bytes too small. Usually this does not immediately
cause a problem because the page reserved for overhead (Elf_Ehdr,
vmcoreinfo, etc.) is pretty generous. So usually there is enough spare
memory to counter the mis-calculated per cpu size. However, with growing
overhead and/or a huge cpu count the allocated size gets too small for the
elfcorehdr. Ultimately a BUG_ON is triggered causing the crash kernel to
panic.

Fix this by properly calculating the required size instead of relying on
magic numbers.

Fixes: a62bc07392 ("s390/kdump: add support for vector extension")
Signed-off-by: Philipp Rudo <prudo@linux.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2018-07-31 17:43:43 +02:00
..
appldata s390/appldata: reuse generic proc handler functions 2018-07-06 08:48:08 +02:00
boot s390/decompressor: avoid packing *.o.chkbss files into startup.a 2018-07-02 12:32:22 +02:00
configs s390: update defconfigs 2018-04-27 06:51:31 +02:00
crypto s390/archrandom: Rework arch random implementation. 2018-05-30 11:18:04 +02:00
hypfs s390/hypfs: Replace PTR_RET with PTR_ERR_OR_ZERO 2018-07-19 16:37:36 +02:00
include s390/cpum_sf: save TOD clock base in SDBs for time conversion 2018-07-31 11:02:27 +02:00
kernel s390/kdump: Fix elfcorehdr size calculation 2018-07-31 17:43:43 +02:00
kvm KVM: s390: Add huge page enablement control 2018-07-30 23:13:38 +02:00
lib s390: introduce compile time check for empty .bss section 2018-05-09 10:55:01 +02:00
mm KVM: s390: initial host large page support 2018-07-31 07:14:19 +02:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-06-06 18:39:49 -07:00
numa s390: add a few more SPDX identifiers 2017-12-05 07:51:09 +01:00
oprofile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pci s390/pci: add fmt3 fmb 2018-07-04 08:35:58 +02:00
purgatory s390/purgatory: Remove duplicate variable definitions 2018-07-06 08:47:51 +02:00
scripts s390/build: add *.o.chkbss files to targets list 2018-07-02 12:32:23 +02:00
tools s390/tools: fix gcc 8 stringop-truncation warnings 2018-07-02 11:25:05 +02:00
defconfig s390: update defconfig 2018-04-16 10:29:34 +02:00
Kbuild s390/kexec_file: Add purgatory 2018-04-16 09:10:22 +02:00
Kconfig s390: reenable gcc plugins 2018-07-25 09:07:20 +02:00
Kconfig.debug License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Makefile s390/decompressor: support extra debug flags 2018-07-02 12:32:24 +02:00