diff options
Diffstat (limited to 'arch/riscv/kernel/machine_kexec.c')
| -rw-r--r-- | arch/riscv/kernel/machine_kexec.c | 4 | 
1 files changed, 3 insertions, 1 deletions
| diff --git a/arch/riscv/kernel/machine_kexec.c b/arch/riscv/kernel/machine_kexec.c index cbef0fc73afa..df8e24559035 100644 --- a/arch/riscv/kernel/machine_kexec.c +++ b/arch/riscv/kernel/machine_kexec.c @@ -65,7 +65,9 @@ machine_kexec_prepare(struct kimage *image)  		if (image->segment[i].memsz <= sizeof(fdt))  			continue; -		if (copy_from_user(&fdt, image->segment[i].buf, sizeof(fdt))) +		if (image->file_mode) +			memcpy(&fdt, image->segment[i].buf, sizeof(fdt)); +		else if (copy_from_user(&fdt, image->segment[i].buf, sizeof(fdt)))  			continue;  		if (fdt_check_header(&fdt)) | 
