The patch titled AVR32: Use parse_early_param has been added to the -mm tree. Its filename is avr32-use-parse_early_param.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: AVR32: Use parse_early_param From: Haavard Skinnemoen <hskinnemoen@xxxxxxxxx> Get rid of the AVR32-specific parse_cmdline_early function and call parse_early_param instead. Parsing of the "fbmem=" parameter has been implemented using early_param, allowing it to be greatly simplified. Signed-off-by: Haavard Skinnemoen <hskinnemoen@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- arch/avr32/kernel/setup.c | 60 +++++++++++------------------------- 1 file changed, 19 insertions(+), 41 deletions(-) diff -puN arch/avr32/kernel/setup.c~avr32-use-parse_early_param arch/avr32/kernel/setup.c --- a/arch/avr32/kernel/setup.c~avr32-use-parse_early_param +++ a/arch/avr32/kernel/setup.c @@ -90,48 +90,24 @@ static struct resource mem_res[] = { static unsigned long __initdata fbmem_start; static unsigned long __initdata fbmem_size; -/* --- */ - -static void __init parse_cmdline_early(char **cmdline_p) +/* + * "fbmem=xxx[kKmM]" allocates the specified amount of boot memory for + * use as framebuffer. + * + * "fbmem=xxx[kKmM]@yyy[kKmM]" defines a memory region of size xxx and + * starting at yyy to be reserved for use as framebuffer. + * + * The kernel won't verify that the memory region starting at yyy + * actually contains usable RAM. + */ +static int __init early_parse_fbmem(char *p) { - char *to = command_line, *from = saved_command_line; - int len = 0; - char c = ' '; - - for (;;) { - if (c != ' ') - goto next_char; - - /* - * "fbmem=xxx[kKmM]" allocates the specified amount of - * boot memory for use as framebuffer. - * "fbmem=xxx[kKmM]@yyy" defines a memory region of - * size xxx and starting at yyy to be reserved for use - * as framebuffer. - * - * The kernel won't verify that the memory region - * starting at yyy actually contains usable RAM. - */ - if (!memcmp(from, "fbmem=", 6)) { - if (to != command_line) - to--; - fbmem_size = memparse(from + 6, &from); - if (*from == '@') - fbmem_start = memparse(from + 1, &from); - } - - next_char: - c = *(from++); - if (c == '\0') - break; - if (COMMAND_LINE_SIZE <= ++len) - break; - *(to++) = c; - } - - *to = '\0'; - *cmdline_p = command_line; + fbmem_size = memparse(p, &p); + if (*p == '@') + fbmem_start = memparse(p, &p); + return 0; } +early_param("fbmem", early_parse_fbmem); static inline void __init resource_init(void) { @@ -341,7 +317,9 @@ void __init setup_arch (char **cmdline_p init_mm.end_data = (unsigned long) &_edata; init_mm.brk = (unsigned long) &_end; - parse_cmdline_early(cmdline_p); + strlcpy(command_line, saved_command_line, COMMAND_LINE_SIZE); + *cmdline_p = command_line; + parse_early_param(); setup_bootmem(); _ Patches currently in -mm which might be from hskinnemoen@xxxxxxxxx are git-mtd.patch avr32-arch.patch avr32-config_debug_bugverbose-and-config_frame_pointer.patch avr32-fix-invalid-constraints-for-stcond.patch avr32-add-support-for-irq-flags-state-tracing.patch avr32-turn-off-support-for-discontigmem-and-sparsemem.patch avr32-always-enable-config_embedded.patch avr32-export-the-find__bit-functions.patch avr32-add-defconfig-for-at32stk1002.patch avr32-use-autoconf-instead-of-marker.patch avr32-dont-assume-anything-about-max_nr_zones.patch avr32-add-i-o-port-access-primitives.patch avr32-use-linux-pfnh.patch avr32-kill-config_discontigmem-support-completely.patch avr32-fix-bug-in-__avr32_asr64.patch avr32-switch-to-generic-timekeeping-framework.patch avr32-set-kbuild_defconfig.patch avr32-kprobes-compile-fix.patch avr32-asm-ioh-should-include-asm-byteorderh.patch avr32-fix-output-constraints-in-asm-bitopsh.patch avr32-standardize-pxx_page-macros-fix.patch avr32-rename-at32stk100x-atstk100x.patch avr32-dont-leave-dbe-set-when-resetting-cpu.patch avr32-make-prot_write-prot_exec-imply-prot_read.patch avr32-remove-set_wmb.patch avr32-use-parse_early_param.patch generic-ioremap_page_range-implementation.patch generic-ioremap_page_range-implementation-fix.patch generic-ioremap_page_range-implementation-nommu-fix.patch generic-ioremap_page_range-flush_cache_vmap.patch generic-ioremap_page_range-alpha-conversion.patch generic-ioremap_page_range-avr32-conversion.patch generic-ioremap_page_range-cris-conversion.patch generic-ioremap_page_range-i386-conversion.patch generic-ioremap_page_range-i386-conversion-fix.patch generic-ioremap_page_range-m32r-conversion.patch generic-ioremap_page_range-mips-conversion.patch generic-ioremap_page_range-mips-conversion-fix.patch generic-ioremap_page_range-parisc-conversion.patch generic-ioremap_page_range-s390-conversion.patch generic-ioremap_page_range-sh-conversion.patch generic-ioremap_page_range-sh64-conversion.patch generic-ioremap_page_range-x86_64-conversion.patch generic-ioremap_page_range-x86_64-conversion-fix.patch avr32-implement-kernel_execve.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html