2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-18 18:23:53 +08:00

s390/kdump: Remove kzalloc_panic

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>
This commit is contained in:
Philipp Rudo 2018-08-13 12:45:06 +02:00 committed by Heiko Carstens
parent 2d2e7075b8
commit 28b7465376

View File

@ -293,19 +293,6 @@ int remap_oldmem_pfn_range(struct vm_area_struct *vma, unsigned long from,
prot); 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) static const char *nt_name(Elf64_Word type)
{ {
const char *name = "LINUX"; const char *name = "LINUX";
@ -453,7 +440,9 @@ static void *get_vmcoreinfo_old(unsigned long *size)
return NULL; return NULL;
if (strcmp(nt_name, VMCOREINFO_NOTE_NAME) != 0) if (strcmp(nt_name, VMCOREINFO_NOTE_NAME) != 0)
return NULL; 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)) { if (copy_oldmem_kernel(vmcoreinfo, addr + 24, note.n_descsz)) {
kfree(vmcoreinfo); kfree(vmcoreinfo);
return NULL; return NULL;
@ -661,7 +650,15 @@ int elfcorehdr_alloc(unsigned long long *addr, unsigned long long *size)
alloc_size = get_elfcorehdr_size(mem_chunk_cnt); 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 */ /* Init elf header */
ptr = ehdr_init(hdr, mem_chunk_cnt); ptr = ehdr_init(hdr, mem_chunk_cnt);
/* Init program headers */ /* Init program headers */