summaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorAaro Koskinen <aaro.koskinen@iki.fi>2012-10-16 19:35:14 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-10-18 11:05:19 +0100
commit2456f44dd7a9aaffc2cd21a13f78198b3d94da08 (patch)
treebbb4f265529b0e1f27bc8fba817b6d64c4332146 /arch/arm
parentddffeb8c4d0331609ef2581d84de4d763607bd37 (diff)
downloadlinux-2456f44dd7a9aaffc2cd21a13f78198b3d94da08.tar.gz
linux-2456f44dd7a9aaffc2cd21a13f78198b3d94da08.tar.xz
ARM: 7555/1: kexec: fix segment memory addresses check
Commit c564df4db85aac8d1d65a56176a0a25f46138064 (ARM: 7540/1: kexec: Check segment memory addresses) added a safety check with accidentally reversed condition, and broke kexec functionality on ARM. Fix this. Acked-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/kernel/machine_kexec.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/arm/kernel/machine_kexec.c b/arch/arm/kernel/machine_kexec.c
index e29c3337ca81..8ef8c9337809 100644
--- a/arch/arm/kernel/machine_kexec.c
+++ b/arch/arm/kernel/machine_kexec.c
@@ -45,10 +45,9 @@ int machine_kexec_prepare(struct kimage *image)
for (i = 0; i < image->nr_segments; i++) {
current_segment = &image->segment[i];
- err = memblock_is_region_memory(current_segment->mem,
- current_segment->memsz);
- if (err)
- return - EINVAL;
+ if (!memblock_is_region_memory(current_segment->mem,
+ current_segment->memsz))
+ return -EINVAL;
err = get_user(header, (__be32*)current_segment->buf);
if (err)