kexec: return error number directly
[cascardo/linux.git] / kernel / kexec_core.c
index 56b3ed0..23311c8 100644 (file)
@@ -147,7 +147,7 @@ static struct page *kimage_alloc_page(struct kimage *image,
 
 int sanity_check_segment_list(struct kimage *image)
 {
-       int result, i;
+       int i;
        unsigned long nr_segments = image->nr_segments;
 
        /*
@@ -163,16 +163,15 @@ int sanity_check_segment_list(struct kimage *image)
         * simply because addresses are changed to page size
         * granularity.
         */
-       result = -EADDRNOTAVAIL;
        for (i = 0; i < nr_segments; i++) {
                unsigned long mstart, mend;
 
                mstart = image->segment[i].mem;
                mend   = mstart + image->segment[i].memsz;
                if ((mstart & ~PAGE_MASK) || (mend & ~PAGE_MASK))
-                       return result;
+                       return -EADDRNOTAVAIL;
                if (mend >= KEXEC_DESTINATION_MEMORY_LIMIT)
-                       return result;
+                       return -EADDRNOTAVAIL;
        }
 
        /* Verify our destination addresses do not overlap.
@@ -180,7 +179,6 @@ int sanity_check_segment_list(struct kimage *image)
         * through very weird things can happen with no
         * easy explanation as one segment stops on another.
         */
-       result = -EINVAL;
        for (i = 0; i < nr_segments; i++) {
                unsigned long mstart, mend;
                unsigned long j;
@@ -194,7 +192,7 @@ int sanity_check_segment_list(struct kimage *image)
                        pend   = pstart + image->segment[j].memsz;
                        /* Do the segments overlap ? */
                        if ((mend > pstart) && (mstart < pend))
-                               return result;
+                               return -EINVAL;
                }
        }
 
@@ -203,10 +201,9 @@ int sanity_check_segment_list(struct kimage *image)
         * and it is easier to check up front than to be surprised
         * later on.
         */
-       result = -EINVAL;
        for (i = 0; i < nr_segments; i++) {
                if (image->segment[i].bufsz > image->segment[i].memsz)
-                       return result;
+                       return -EINVAL;
        }
 
        /*
@@ -220,7 +217,6 @@ int sanity_check_segment_list(struct kimage *image)
         */
 
        if (image->type == KEXEC_TYPE_CRASH) {
-               result = -EADDRNOTAVAIL;
                for (i = 0; i < nr_segments; i++) {
                        unsigned long mstart, mend;
 
@@ -229,7 +225,7 @@ int sanity_check_segment_list(struct kimage *image)
                        /* Ensure we are within the crash kernel limits */
                        if ((mstart < crashk_res.start) ||
                            (mend > crashk_res.end))
-                               return result;
+                               return -EADDRNOTAVAIL;
                }
        }