From 29aacd372011266a04ce01f5a6070e5994e0cf17 Mon Sep 17 00:00:00 2001 From: Guido Guenther Date: Wed, 21 Nov 2007 16:56:24 +0100 Subject: remove kernel patches to parse the command line they've been in 2.6 since ages --- tip22/kernel/parse_rd_cmd_line-2.4-2002-05-09.diff | 88 ----------- tip22/kernel/parse_rd_cmd_line-2.6-2004-11-17.diff | 172 --------------------- 2 files changed, 260 deletions(-) delete mode 100644 tip22/kernel/parse_rd_cmd_line-2.4-2002-05-09.diff delete mode 100644 tip22/kernel/parse_rd_cmd_line-2.6-2004-11-17.diff diff --git a/tip22/kernel/parse_rd_cmd_line-2.4-2002-05-09.diff b/tip22/kernel/parse_rd_cmd_line-2.4-2002-05-09.diff deleted file mode 100644 index c1bd785..0000000 --- a/tip22/kernel/parse_rd_cmd_line-2.4-2002-05-09.diff +++ /dev/null @@ -1,88 +0,0 @@ -Index: arch/mips/kernel/setup.c -=================================================================== -RCS file: /cvs/linux/arch/mips/kernel/setup.c,v -retrieving revision 1.96.2.12 -diff -u -u -r1.96.2.12 setup.c ---- arch/mips/kernel/setup.c 2002/02/15 21:05:48 1.96.2.12 -+++ arch/mips/kernel/setup.c 2002/05/09 17:17:59 -@@ -650,6 +650,38 @@ - } - } - -+static inline void parse_rd_cmdline(unsigned long* rd_start, unsigned long* rd_end) -+{ -+ char c = ' ', *to = command_line, *from = saved_command_line; -+ int len = 0; -+ unsigned long rd_size = 0; -+ -+ for (;;) { -+ /* -+ * "rd_start=0xNNNNNNNN" defines the memory address of an initrd -+ * "rd_size=0xNN" it's size -+ */ -+ if (c == ' ' && !memcmp(from, "rd_start=", 9)) { -+ if (to != command_line) -+ to--; -+ (*rd_start) = memparse(from + 9, &from); -+ } -+ if (c == ' ' && !memcmp(from, "rd_size=", 8)) { -+ if (to != command_line) -+ to--; -+ rd_size = memparse(from + 8, &from); -+ } -+ c = *(from++); -+ if (!c) -+ break; -+ if (CL_SIZE <= ++len) -+ break; -+ *(to++) = c; -+ } -+ *to = '\0'; -+ (*rd_end) = (*rd_start) + rd_size; -+} -+ - void __init setup_arch(char **cmdline_p) - { - void atlas_setup(void); -@@ -674,10 +706,7 @@ - - unsigned long bootmap_size; - unsigned long start_pfn, max_pfn, max_low_pfn, first_usable_pfn; --#ifdef CONFIG_BLK_DEV_INITRD -- unsigned long tmp; -- unsigned long* initrd_header; --#endif -+ unsigned long end = &_end; - - int i; - -@@ -828,22 +857,18 @@ - #define MAXMEM_PFN PFN_DOWN(MAXMEM) - - #ifdef CONFIG_BLK_DEV_INITRD -- tmp = (((unsigned long)&_end + PAGE_SIZE-1) & PAGE_MASK) - 8; -- if (tmp < (unsigned long)&_end) -- tmp += PAGE_SIZE; -- initrd_header = (unsigned long *)tmp; -- if (initrd_header[0] == 0x494E5244) { -- initrd_start = (unsigned long)&initrd_header[2]; -- initrd_end = initrd_start + initrd_header[1]; -+ parse_rd_cmdline(&initrd_start, &initrd_end); -+ if(initrd_start && initrd_end) -+ end = initrd_end; -+ else { -+ initrd_start = initrd_end = 0; - } -- start_pfn = PFN_UP(__pa((&_end)+(initrd_end - initrd_start) + PAGE_SIZE)); --#else -+#endif /* CONFIG_BLK_DEV_INITRD */ - /* - * Partially used pages are not usable - thus - * we are rounding upwards. - */ -- start_pfn = PFN_UP(__pa(&_end)); --#endif /* CONFIG_BLK_DEV_INITRD */ -+ start_pfn = PFN_UP(__pa(end)); - - /* Find the highest page frame number we have available. */ - max_pfn = 0; diff --git a/tip22/kernel/parse_rd_cmd_line-2.6-2004-11-17.diff b/tip22/kernel/parse_rd_cmd_line-2.6-2004-11-17.diff deleted file mode 100644 index 504dd66..0000000 --- a/tip22/kernel/parse_rd_cmd_line-2.6-2004-11-17.diff +++ /dev/null @@ -1,172 +0,0 @@ -Index: arch/mips/kernel/setup.c -=================================================================== -RCS file: /home/cvs/linux/arch/mips/kernel/setup.c,v -retrieving revision 1.171 -diff -u -p -r1.171 setup.c ---- arch/mips/kernel/setup.c 28 Jun 2004 21:04:12 -0000 1.171 -+++ arch/mips/kernel/setup.c 19 Nov 2004 00:45:23 -0000 -@@ -194,6 +194,68 @@ static inline void parse_cmdline_early(v - } - } - -+static inline int parse_rd_cmdline(unsigned long* rd_start, unsigned long* rd_end) -+{ -+ /* -+ * "rd_start=0xNNNNNNNN" defines the memory address of an initrd -+ * "rd_size=0xNN" it's size -+ */ -+ unsigned long start = 0; -+ unsigned long size = 0; -+ unsigned long end; -+ char cmd_line[CL_SIZE]; -+ char *start_str; -+ char *size_str; -+ char *tmp; -+ -+ strcpy(cmd_line, command_line); -+ *command_line = 0; -+ tmp = cmd_line; -+ /* Ignore "rd_start=" strings in other parameters. */ -+ start_str = strstr(cmd_line, "rd_start="); -+ if (start_str && start_str != cmd_line && *(start_str - 1) != ' ') -+ start_str = strstr(start_str, " rd_start="); -+ while (start_str) { -+ if (start_str != cmd_line) -+ strncat(command_line, tmp, start_str - tmp); -+ start = memparse(start_str + 9, &start_str); -+ tmp = start_str + 1; -+ start_str = strstr(start_str, " rd_start="); -+ } -+ if (*tmp) -+ strcat(command_line, tmp); -+ -+ strcpy(cmd_line, command_line); -+ *command_line = 0; -+ tmp = cmd_line; -+ /* Ignore "rd_size" strings in other parameters. */ -+ size_str = strstr(cmd_line, "rd_size="); -+ if (size_str && size_str != cmd_line && *(size_str - 1) != ' ') -+ size_str = strstr(size_str, " rd_size="); -+ while (size_str) { -+ if (size_str != cmd_line) -+ strncat(command_line, tmp, size_str - tmp); -+ size = memparse(size_str + 8, &size_str); -+ tmp = size_str + 1; -+ size_str = strstr(size_str, " rd_size="); -+ } -+ if (*tmp) -+ strcat(command_line, tmp); -+ -+#ifdef CONFIG_MIPS64 -+ /* HACK: Guess if the sign extension was forgotten */ -+ if (start > 0x0000000080000000 && start < 0x00000000ffffffff) -+ start |= 0xffffffff00000000; -+#endif -+ -+ end = start + size; -+ if (start && end) { -+ *rd_start = start; -+ *rd_end = end; -+ return 1; -+ } -+ return 0; -+} - - #define PFN_UP(x) (((x) + PAGE_SIZE - 1) >> PAGE_SHIFT) - #define PFN_DOWN(x) ((x) >> PAGE_SHIFT) -@@ -205,30 +267,45 @@ static inline void parse_cmdline_early(v - static inline void bootmem_init(void) - { - unsigned long start_pfn; -+ unsigned long reserved_end = (unsigned long)&_end; - #ifndef CONFIG_SGI_IP27 -- unsigned long bootmap_size, max_low_pfn, first_usable_pfn; -+ unsigned long first_usable_pfn; -+ unsigned long bootmap_size; - int i; - #endif - #ifdef CONFIG_BLK_DEV_INITRD -- unsigned long tmp; -- unsigned long *initrd_header; -+ int initrd_reserve_bootmem = 0; - -- tmp = (((unsigned long)&_end + PAGE_SIZE-1) & PAGE_MASK) - 8; -- if (tmp < (unsigned long)&_end) -- tmp += PAGE_SIZE; -- initrd_header = (unsigned long *)tmp; -- if (initrd_header[0] == 0x494E5244) { -- initrd_start = (unsigned long)&initrd_header[2]; -- initrd_end = initrd_start + initrd_header[1]; -+ /* Board specific code should have set up initrd_start and initrd_end */ -+ ROOT_DEV = Root_RAM0; -+ if (&__rd_start != &__rd_end) { -+ initrd_start = (unsigned long)&__rd_start; -+ initrd_end = (unsigned long)&__rd_end; -+ } else if (parse_rd_cmdline(&initrd_start, &initrd_end)) { -+ reserved_end = max(reserved_end, initrd_end); -+ initrd_reserve_bootmem = 1; -+ } else { -+ unsigned long tmp; -+ unsigned long *initrd_header; -+ -+ tmp = ((reserved_end + PAGE_SIZE-1) & PAGE_MASK) - 8; -+ if (tmp < reserved_end) -+ tmp += PAGE_SIZE; -+ initrd_header = (unsigned long *)tmp; -+ if (initrd_header[0] == 0x494E5244) { -+ initrd_start = (unsigned long)&initrd_header[2]; -+ initrd_end = initrd_start + initrd_header[1]; -+ reserved_end = max(reserved_end, initrd_end); -+ initrd_reserve_bootmem = 1; -+ } - } -- start_pfn = PFN_UP(CPHYSADDR((&_end)+(initrd_end - initrd_start) + PAGE_SIZE)); --#else -+#endif /* CONFIG_BLK_DEV_INITRD */ -+ - /* - * Partially used pages are not usable - thus - * we are rounding upwards. - */ -- start_pfn = PFN_UP(CPHYSADDR(&_end)); --#endif /* CONFIG_BLK_DEV_INITRD */ -+ start_pfn = PFN_UP(CPHYSADDR(reserved_end)); - - #ifndef CONFIG_SGI_IP27 - /* Find the highest page frame number we have available. */ -@@ -341,21 +418,14 @@ static inline void bootmem_init(void) - - /* Reserve the bootmap memory. */ - reserve_bootmem(PFN_PHYS(first_usable_pfn), bootmap_size); --#endif -+#endif /* CONFIG_SGI_IP27 */ - - #ifdef CONFIG_BLK_DEV_INITRD -- /* Board specific code should have set up initrd_start and initrd_end */ -- ROOT_DEV = Root_RAM0; -- if (&__rd_start != &__rd_end) { -- initrd_start = (unsigned long)&__rd_start; -- initrd_end = (unsigned long)&__rd_end; -- } - initrd_below_start_ok = 1; - if (initrd_start) { - unsigned long initrd_size = ((unsigned char *)initrd_end) - ((unsigned char *)initrd_start); - printk("Initial ramdisk at: 0x%p (%lu bytes)\n", -- (void *)initrd_start, -- initrd_size); -+ (void *)initrd_start, initrd_size); - - if (CPHYSADDR(initrd_end) > PFN_PHYS(max_low_pfn)) { - printk("initrd extends beyond end of memory " -@@ -363,7 +433,11 @@ static inline void bootmem_init(void) - sizeof(long) * 2, CPHYSADDR(initrd_end), - sizeof(long) * 2, PFN_PHYS(max_low_pfn)); - initrd_start = initrd_end = 0; -+ initrd_reserve_bootmem = 0; - } -+ -+ if (initrd_reserve_bootmem) -+ reserve_bootmem(CPHYSADDR(initrd_start), initrd_size); - } - #endif /* CONFIG_BLK_DEV_INITRD */ - } -- cgit v1.2.3