提交 fa706927 编写于 作者: L Liao Chang 提交者: Thomas Bogendoerfer

MIPS: Loongson64: Add WARN_ON on kexec related kmalloc failed

Add WARN_ON on kexec related kmalloc failed, avoid to pass NULL pointer
to following memcpy and loongson_kexec_prepare.

Fixes: 6ce48897 ("MIPS: Loongson64: Add kexec/kdump support")
Signed-off-by: NLiao Chang <liaochang1@huawei.com>
Signed-off-by: NThomas Bogendoerfer <tsbogend@alpha.franken.de>
上级 612d8078
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <asm/bootinfo.h> #include <asm/bootinfo.h>
#include <asm/idle.h> #include <asm/idle.h>
#include <asm/reboot.h> #include <asm/reboot.h>
#include <asm/bug.h>
#include <loongson.h> #include <loongson.h>
#include <boot_param.h> #include <boot_param.h>
...@@ -159,8 +160,17 @@ static int __init mips_reboot_setup(void) ...@@ -159,8 +160,17 @@ static int __init mips_reboot_setup(void)
#ifdef CONFIG_KEXEC #ifdef CONFIG_KEXEC
kexec_argv = kmalloc(KEXEC_ARGV_SIZE, GFP_KERNEL); kexec_argv = kmalloc(KEXEC_ARGV_SIZE, GFP_KERNEL);
if (WARN_ON(!kexec_argv))
return -ENOMEM;
kdump_argv = kmalloc(KEXEC_ARGV_SIZE, GFP_KERNEL); kdump_argv = kmalloc(KEXEC_ARGV_SIZE, GFP_KERNEL);
if (WARN_ON(!kdump_argv))
return -ENOMEM;
kexec_envp = kmalloc(KEXEC_ENVP_SIZE, GFP_KERNEL); kexec_envp = kmalloc(KEXEC_ENVP_SIZE, GFP_KERNEL);
if (WARN_ON(!kexec_envp))
return -ENOMEM;
fw_arg1 = KEXEC_ARGV_ADDR; fw_arg1 = KEXEC_ARGV_ADDR;
memcpy(kexec_envp, (void *)fw_arg2, KEXEC_ENVP_SIZE); memcpy(kexec_envp, (void *)fw_arg2, KEXEC_ENVP_SIZE);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册