Commit 518a0c71 authored by Geoff Levand's avatar Geoff Levand Committed by Linus Torvalds

kexec: simplify conditional

Simplify the code around one of the conditionals in the kexec_load syscall
routine.

The original code was confusing with a redundant check on KEXEC_ON_CRASH
and comments outside of the conditional block.  This change switches the
order of the conditional check, and cleans up the comments for the
conditional.  There is no functional change to the code.
Signed-off-by: default avatarGeoff Levand <geoff@infradead.org>
Acked-by: default avatarVivek Goyal <vgoyal@redhat.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Maximilian Attems <max@stro.at>
Cc: Michal Marek <mmarek@suse.cz>
Cc: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 9dc5c05f
...@@ -1284,19 +1284,22 @@ SYSCALL_DEFINE4(kexec_load, unsigned long, entry, unsigned long, nr_segments, ...@@ -1284,19 +1284,22 @@ SYSCALL_DEFINE4(kexec_load, unsigned long, entry, unsigned long, nr_segments,
if (nr_segments > 0) { if (nr_segments > 0) {
unsigned long i; unsigned long i;
/* Loading another kernel to reboot into */ if (flags & KEXEC_ON_CRASH) {
if ((flags & KEXEC_ON_CRASH) == 0) /*
result = kimage_alloc_init(&image, entry, nr_segments, * Loading another kernel to switch to if this one
segments, flags); * crashes. Free any current crash dump kernel before
/* Loading another kernel to switch to if this one crashes */
else if (flags & KEXEC_ON_CRASH) {
/* Free any current crash dump kernel before
* we corrupt it. * we corrupt it.
*/ */
kimage_free(xchg(&kexec_crash_image, NULL)); kimage_free(xchg(&kexec_crash_image, NULL));
result = kimage_alloc_init(&image, entry, nr_segments, result = kimage_alloc_init(&image, entry, nr_segments,
segments, flags); segments, flags);
crash_map_reserved_pages(); crash_map_reserved_pages();
} else {
/* Loading another kernel to reboot into. */
result = kimage_alloc_init(&image, entry, nr_segments,
segments, flags);
} }
if (result) if (result)
goto out; goto out;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment