From e5a9be6766b79b144b6094d7b3c4418706b8f31d Mon Sep 17 00:00:00 2001 From: Michael Holzheu Date: Thu, 12 Jan 2012 17:20:15 -0800 Subject: [PATCH] --- yaml --- r: 284420 b: refs/heads/master c: bec013c40bc89671d8d457944fdf7d2b8e79d651 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/kernel/kexec.c | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 88aa51110bb6..f51b0f4656fc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6480e5a0923756b500634d9777ec4189492fbbfe +refs/heads/master: bec013c40bc89671d8d457944fdf7d2b8e79d651 diff --git a/trunk/kernel/kexec.c b/trunk/kernel/kexec.c index 60bf181b3eae..7b0886786701 100644 --- a/trunk/kernel/kexec.c +++ b/trunk/kernel/kexec.c @@ -1129,6 +1129,7 @@ int crash_shrink_memory(unsigned long new_size) { int ret = 0; unsigned long start, end; + unsigned long old_size; struct resource *ram_res; mutex_lock(&kexec_mutex); @@ -1139,11 +1140,9 @@ int crash_shrink_memory(unsigned long new_size) } start = crashk_res.start; end = crashk_res.end; - - if (new_size >= end - start + 1) { - ret = -EINVAL; - if (new_size == end - start + 1) - ret = 0; + old_size = (end == 0) ? 0 : end - start + 1; + if (new_size >= old_size) { + ret = (new_size == old_size) ? 0 : -EINVAL; goto unlock; }