From: Zhang Yanfei <[email protected]>

This reverts commit e35aa29fb40b37bf86d980b2e19af5e01c2d2549.
This patch is based on the commit 49320340f705694e387d794f7f19d407ad9baefa
     "kexec: lengthen the kernel command line image"
Since the latter commit has been reverted due to its useless, this
patch should be reverted too.

Besides, This patch also changed a kernel restriction of max segments
from 16 to 70. Though kexec-tools could have more segments, more than 16,
the kexec_load syscall will still fail for the kernel side has a restriction
of 16.

Cc: Cliff Wickman <[email protected]>
Signed-off-by: Zhang Yanfei <[email protected]>
---
 kexec/arch/i386/crashdump-x86.c |   31 ++-----------------------------
 kexec/kexec-syscall.h           |    2 +-
 2 files changed, 3 insertions(+), 30 deletions(-)

diff --git a/kexec/arch/i386/crashdump-x86.c b/kexec/arch/i386/crashdump-x86.c
index 9ab648b..bbd0741 100644
--- a/kexec/arch/i386/crashdump-x86.c
+++ b/kexec/arch/i386/crashdump-x86.c
@@ -247,8 +247,6 @@ static int get_crash_memory_ranges(struct memory_range 
**range, int *ranges,
                        type = RANGE_ACPI;
                } else if(memcmp(str,"ACPI Non-volatile Storage\n",26) == 0 ) {
                        type = RANGE_ACPI_NVS;
-               } else if(memcmp(str,"reserved\n", 9) == 0 ) {
-                       type = RANGE_RESERVED;
                } else if (memcmp(str, "GART\n", 5) == 0) {
                        gart_start = start;
                        gart_end = end;
@@ -907,27 +905,6 @@ static void get_backup_area(struct kexec_info *info,
        info->backup_src_size = BACKUP_SRC_END - BACKUP_SRC_START + 1;
 }
 
-/* Appends memmap=X$Y commandline for reserved memory to command line*/
-static int cmdline_add_memmap_reserved(char *cmdline, unsigned long start,
-                                       unsigned long end)
-{
-       int align = 1024;
-       unsigned long startk, endk;
-
-       if (!(end - start))
-               return 0;
-
-       startk = start/1024;
-       endk = (end + align - 1)/1024;
-       cmdline_add_memmap_internal(cmdline, startk, endk, RANGE_RESERVED);
-
-#ifdef DEBUG
-               printf("Command line after adding reserved memmap\n");
-               printf("%s\n", cmdline);
-#endif
-       return 0;
-}
-
 /* Loads additional segments in case of a panic kernel is being loaded.
  * One segment for backup region, another segment for storing elf headers
  * for crash memory image.
@@ -1080,15 +1057,11 @@ int load_crashdump_segments(struct kexec_info *info, 
char* mod_cmdline,
        for (i = 0; i < CRASH_MAX_MEMORY_RANGES; i++) {
                unsigned long start, end;
                if ( !( mem_range[i].type == RANGE_ACPI
-                       || mem_range[i].type == RANGE_ACPI_NVS
-                       || mem_range[i].type == RANGE_RESERVED) )
+                       || mem_range[i].type == RANGE_ACPI_NVS) )
                        continue;
                start = mem_range[i].start;
                end = mem_range[i].end;
-               if (mem_range[i].type == RANGE_RESERVED)
-                       cmdline_add_memmap_reserved(mod_cmdline, start, end);
-               else
-                       cmdline_add_memmap_acpi(mod_cmdline, start, end);
+               cmdline_add_memmap_acpi(mod_cmdline, start, end);
        }
        return 0;
 }
diff --git a/kexec/kexec-syscall.h b/kexec/kexec-syscall.h
index f5ee992..b56cb00 100644
--- a/kexec/kexec-syscall.h
+++ b/kexec/kexec-syscall.h
@@ -78,7 +78,7 @@ static inline long kexec_load(void *entry, unsigned long 
nr_segments,
 #define KEXEC_ARCH_MIPS    ( 8 << 16)
 #define KEXEC_ARCH_CRIS    (76 << 16)
 
-#define KEXEC_MAX_SEGMENTS 70
+#define KEXEC_MAX_SEGMENTS 16
 
 #ifdef __i386__
 #define KEXEC_ARCH_NATIVE      KEXEC_ARCH_386
-- 
1.7.1

_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to