Skip to content

Commit

Permalink
s390/kdump: Remove kzalloc_panic
Browse files Browse the repository at this point in the history
For this function there are only two users, when 1) the elfcorehdr and 2)
the vmcoreinfo is allocated. However a missing vmcoreinfo is not critical
for kdump. So panicking when it cannot be allocated is not required.

Remove kzalloc_panic and adjust its callers accordingly.

Signed-off-by: Philipp Rudo <prudo@linux.ibm.com>
Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
  • Loading branch information
Philipp Rudo authored and Heiko Carstens committed Aug 16, 2018
1 parent 2d2e707 commit 28b7465
Showing 1 changed file with 12 additions and 15 deletions.
27 changes: 12 additions & 15 deletions arch/s390/kernel/crash_dump.c
Original file line number Diff line number Diff line change
Expand Up @@ -293,19 +293,6 @@ int remap_oldmem_pfn_range(struct vm_area_struct *vma, unsigned long from,
prot);
}

/*
* Alloc memory and panic in case of ENOMEM
*/
static void *kzalloc_panic(int len)
{
void *rc;

rc = kzalloc(len, GFP_KERNEL);
if (!rc)
panic("s390 kdump kzalloc (%d) failed", len);
return rc;
}

static const char *nt_name(Elf64_Word type)
{
const char *name = "LINUX";
Expand Down Expand Up @@ -453,7 +440,9 @@ static void *get_vmcoreinfo_old(unsigned long *size)
return NULL;
if (strcmp(nt_name, VMCOREINFO_NOTE_NAME) != 0)
return NULL;
vmcoreinfo = kzalloc_panic(note.n_descsz);
vmcoreinfo = kzalloc(note.n_descsz, GFP_KERNEL);
if (!vmcoreinfo)
return NULL;
if (copy_oldmem_kernel(vmcoreinfo, addr + 24, note.n_descsz)) {
kfree(vmcoreinfo);
return NULL;
Expand Down Expand Up @@ -661,7 +650,15 @@ int elfcorehdr_alloc(unsigned long long *addr, unsigned long long *size)

alloc_size = get_elfcorehdr_size(mem_chunk_cnt);

hdr = kzalloc_panic(alloc_size);
hdr = kzalloc(alloc_size, GFP_KERNEL);

/* Without elfcorehdr /proc/vmcore cannot be created. Thus creating
* a dump with this crash kernel will fail. Panic now to allow other
* dump mechanisms to take over.
*/
if (!hdr)
panic("s390 kdump allocating elfcorehdr failed");

/* Init elf header */
ptr = ehdr_init(hdr, mem_chunk_cnt);
/* Init program headers */
Expand Down

0 comments on commit 28b7465

Please sign in to comment.