OSDN Git Service

kexec: simplify conditional
[uclinux-h8/linux.git] / kernel / kexec.c
index e9a6be4..38c25b1 100644 (file)
@@ -1284,19 +1284,22 @@ SYSCALL_DEFINE4(kexec_load, unsigned long, entry, unsigned long, nr_segments,
        if (nr_segments > 0) {
                unsigned long i;
 
-               /* Loading another kernel to reboot into */
-               if ((flags & KEXEC_ON_CRASH) == 0)
-                       result = kimage_alloc_init(&image, entry, nr_segments,
-                                                  segments, flags);
-               /* Loading another kernel to switch to if this one crashes */
-               else if (flags & KEXEC_ON_CRASH) {
-                       /* Free any current crash dump kernel before
+               if (flags & KEXEC_ON_CRASH) {
+                       /*
+                        * Loading another kernel to switch to if this one
+                        * crashes.  Free any current crash dump kernel before
                         * we corrupt it.
                         */
+
                        kimage_free(xchg(&kexec_crash_image, NULL));
                        result = kimage_alloc_init(&image, entry, nr_segments,
                                                   segments, flags);
                        crash_map_reserved_pages();
+               } else {
+                       /* Loading another kernel to reboot into. */
+
+                       result = kimage_alloc_init(&image, entry, nr_segments,
+                                                  segments, flags);
                }
                if (result)
                        goto out;