[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC 6/6] xen/arm: Replace early_printk call to printk call
Now that the console supports earlyprintk, we can get a rid of early_printk call. Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx> --- xen/arch/arm/early_printk.c | 32 -------------------------------- xen/arch/arm/setup.c | 28 +++++++++++++--------------- xen/common/device_tree.c | 36 +++++++++++++----------------------- xen/drivers/char/dt-uart.c | 9 ++++----- xen/drivers/char/exynos4210-uart.c | 13 +++++-------- xen/drivers/char/omap-uart.c | 13 ++++++------- xen/drivers/char/pl011.c | 13 ++++++------- xen/drivers/video/arm_hdlcd.c | 29 ++++++++++++++--------------- xen/include/asm-arm/early_printk.h | 23 +---------------------- 9 files changed, 62 insertions(+), 134 deletions(-) diff --git a/xen/arch/arm/early_printk.c b/xen/arch/arm/early_printk.c index affe424..9119c8c 100644 --- a/xen/arch/arm/early_printk.c +++ b/xen/arch/arm/early_printk.c @@ -18,9 +18,6 @@ void early_putch(char c); void early_flush(void); -/* Early printk buffer */ -static char __initdata buf[512]; - void early_puts(const char *s) { while (*s != '\0') { @@ -36,32 +33,3 @@ void early_puts(const char *s) */ early_flush(); } - -static void __init early_vprintk(const char *fmt, va_list args) -{ - vsnprintf(buf, sizeof(buf), fmt, args); - early_puts(buf); -} - -void __init early_printk(const char *fmt, ...) -{ - va_list args; - - va_start(args, fmt); - early_vprintk(fmt, args); - va_end(args); -} - -void __attribute__((noreturn)) __init -early_panic(const char *fmt, ...) -{ - va_list args; - - va_start(args, fmt); - early_vprintk(fmt, args); - va_end(args); - - early_printk("\n\nEarly Panic: Stopping\n"); - - while(1); -} diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c index 840b04b..76b4273 100644 --- a/xen/arch/arm/setup.c +++ b/xen/arch/arm/setup.c @@ -39,7 +39,6 @@ #include <asm/page.h> #include <asm/current.h> #include <asm/setup.h> -#include <asm/early_printk.h> #include <asm/gic.h> #include <asm/cpufeature.h> #include <asm/platform.h> @@ -346,10 +345,10 @@ static paddr_t __init get_xen_paddr(void) } if ( !paddr ) - early_panic("Not enough memory to relocate Xen"); + panic("Not enough memory to relocate Xen"); - early_printk("Placing Xen at 0x%"PRIpaddr"-0x%"PRIpaddr"\n", - paddr, paddr + min_size); + printk("Placing Xen at 0x%"PRIpaddr"-0x%"PRIpaddr"\n", + paddr, paddr + min_size); early_info.modules.module[MOD_XEN].start = paddr; early_info.modules.module[MOD_XEN].size = min_size; @@ -371,7 +370,7 @@ static void __init setup_mm(unsigned long dtb_paddr, size_t dtb_size) void *fdt; if ( !early_info.mem.nr_banks ) - early_panic("No memory bank"); + panic("No memory bank"); /* * We are going to accumulate two regions here. @@ -430,8 +429,8 @@ static void __init setup_mm(unsigned long dtb_paddr, size_t dtb_size) if ( i != early_info.mem.nr_banks ) { - early_printk("WARNING: only using %d out of %d memory banks\n", - i, early_info.mem.nr_banks); + printk("WARNING: only using %d out of %d memory banks\n", + i, early_info.mem.nr_banks); early_info.mem.nr_banks = i; } @@ -465,14 +464,13 @@ static void __init setup_mm(unsigned long dtb_paddr, size_t dtb_size) } while ( xenheap_pages > 128<<(20-PAGE_SHIFT) ); if ( ! e ) - early_panic("Not not enough space for xenheap"); + panic("Not not enough space for xenheap"); domheap_pages = heap_pages - xenheap_pages; - early_printk("Xen heap: %"PRIpaddr"-%"PRIpaddr" (%lu pages)\n", - e - (pfn_to_paddr(xenheap_pages)), e, - xenheap_pages); - early_printk("Dom heap: %lu pages\n", domheap_pages); + printk("Xen heap: %"PRIpaddr"-%"PRIpaddr" (%lu pages)\n", + e - (pfn_to_paddr(xenheap_pages)), e, xenheap_pages); + printk("Dom heap: %lu pages\n", domheap_pages); setup_xenheap_mappings((e >> PAGE_SHIFT) - xenheap_pages, xenheap_pages); @@ -606,8 +604,8 @@ static void __init setup_mm(unsigned long dtb_paddr, size_t dtb_size) if ( bank != early_info.mem.nr_banks ) { - early_printk("WARNING: only using %d out of %d memory banks\n", - bank, early_info.mem.nr_banks); + printk("WARNING: only using %d out of %d memory banks\n", + bank, early_info.mem.nr_banks); early_info.mem.nr_banks = bank; } @@ -672,7 +670,7 @@ void __init start_xen(unsigned long boot_phys_offset, fdt_size = device_tree_early_init(device_tree_flattened, fdt_paddr); cmdline = device_tree_bootargs(device_tree_flattened); - early_printk("Command line: %s\n", cmdline); + printk("Command line: %s\n", cmdline); cmdline_parse(cmdline); setup_pagetables(boot_phys_offset, get_xen_paddr()); diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c index 84e709d..c35aee1 100644 --- a/xen/common/device_tree.c +++ b/xen/common/device_tree.c @@ -23,7 +23,6 @@ #include <xen/cpumask.h> #include <xen/ctype.h> #include <xen/lib.h> -#include <asm/early_printk.h> struct dt_early_info __initdata early_info; const void *device_tree_flattened; @@ -54,16 +53,7 @@ struct dt_alias_prop { static LIST_HEAD(aliases_lookup); -/* Some device tree functions may be called both before and after the - console is initialized. */ -#define dt_printk(fmt, ...) \ - do \ - { \ - if ( system_state == SYS_STATE_early_boot ) \ - early_printk(fmt, ## __VA_ARGS__); \ - else \ - printk(fmt, ## __VA_ARGS__); \ - } while (0) +#define dt_printk(fmt, ...) printk(fmt, ## __VA_ARGS__); // #define DEBUG_DT @@ -316,7 +306,7 @@ static void __init process_memory_node(const void *fdt, int node, if ( address_cells < 1 || size_cells < 1 ) { - early_printk("fdt: node `%s': invalid #address-cells or #size-cells", + dt_printk("fdt: node `%s': invalid #address-cells or #size-cells", name); return; } @@ -324,7 +314,7 @@ static void __init process_memory_node(const void *fdt, int node, prop = fdt_get_property(fdt, node, "reg", NULL); if ( !prop ) { - early_printk("fdt: node `%s': missing `reg' property\n", name); + dt_printk("fdt: node `%s': missing `reg' property\n", name); return; } @@ -355,16 +345,16 @@ static void __init process_multiboot_node(const void *fdt, int node, else if ( fdt_node_check_compatible(fdt, node, "xen,linux-initrd") == 0) nr = MOD_INITRD; else - early_panic("%s not a known xen multiboot type\n", name); + panic("%s not a known xen multiboot type\n", name); mod = &early_info.modules.module[nr]; prop = fdt_get_property(fdt, node, "reg", &len); if ( !prop ) - early_panic("node %s missing `reg' property\n", name); + panic("node %s missing `reg' property\n", name); if ( len < dt_cells_to_size(address_cells + size_cells) ) - early_panic("fdt: node `%s': `reg` property length is too short\n", + panic("fdt: node `%s': `reg` property length is too short\n", name); cell = (const __be32 *)prop->data; @@ -375,7 +365,7 @@ static void __init process_multiboot_node(const void *fdt, int node, if ( prop ) { if ( len > sizeof(mod->cmdline) ) - early_panic("module %d command line too long\n", nr); + panic("module %d command line too long\n", nr); safe_strcpy(mod->cmdline, prop->data); } @@ -458,12 +448,12 @@ static void __init early_print_info(void) int i, nr_rsvd; for ( i = 0; i < mi->nr_banks; i++ ) - early_printk("RAM: %"PRIpaddr" - %"PRIpaddr"\n", + dt_printk("RAM: %"PRIpaddr" - %"PRIpaddr"\n", mi->bank[i].start, mi->bank[i].start + mi->bank[i].size - 1); - early_printk("\n"); + dt_printk("\n"); for ( i = 1 ; i < mods->nr_mods + 1; i++ ) - early_printk("MODULE[%d]: %"PRIpaddr" - %"PRIpaddr" %s\n", + dt_printk("MODULE[%d]: %"PRIpaddr" - %"PRIpaddr" %s\n", i, mods->module[i].start, mods->module[i].start + mods->module[i].size, @@ -476,10 +466,10 @@ static void __init early_print_info(void) continue; /* fdt_get_mem_rsv returns length */ e += s; - early_printk(" RESVD[%d]: %"PRIpaddr" - %"PRIpaddr"\n", + dt_printk(" RESVD[%d]: %"PRIpaddr" - %"PRIpaddr"\n", i, s, e); } - early_printk("\n"); + dt_printk("\n"); } /** @@ -495,7 +485,7 @@ size_t __init device_tree_early_init(const void *fdt, paddr_t paddr) ret = fdt_check_header(fdt); if ( ret < 0 ) - early_panic("No valid device tree\n"); + panic("No valid device tree\n"); mod = &early_info.modules.module[MOD_FDT]; mod->start = paddr; diff --git a/xen/drivers/char/dt-uart.c b/xen/drivers/char/dt-uart.c index d7204fb..fa92b5c 100644 --- a/xen/drivers/char/dt-uart.c +++ b/xen/drivers/char/dt-uart.c @@ -18,7 +18,6 @@ */ #include <asm/device.h> -#include <asm/early_printk.h> #include <asm/types.h> #include <xen/console.h> #include <xen/device_tree.h> @@ -44,7 +43,7 @@ void __init dt_uart_init(void) if ( !console_has("dtuart") || !strcmp(opt_dtuart, "") ) { - early_printk("No console\n"); + printk("No console\n"); return; } @@ -54,7 +53,7 @@ void __init dt_uart_init(void) else options = ""; - early_printk("Looking for UART console %s\n", devpath); + printk("Looking for UART console %s\n", devpath); if ( *devpath == '/' ) dev = dt_find_node_by_path(devpath); else @@ -62,12 +61,12 @@ void __init dt_uart_init(void) if ( !dev ) { - early_printk("Unable to find device \"%s\"\n", devpath); + printk("Unable to find device \"%s\"\n", devpath); return; } ret = device_init(dev, DEVICE_SERIAL, options); if ( ret ) - early_printk("Unable to initialize serial: %d\n", ret); + printk("Unable to initialize serial: %d\n", ret); } diff --git a/xen/drivers/char/exynos4210-uart.c b/xen/drivers/char/exynos4210-uart.c index 0a2ac17..17ba010 100644 --- a/xen/drivers/char/exynos4210-uart.c +++ b/xen/drivers/char/exynos4210-uart.c @@ -24,7 +24,6 @@ #include <xen/init.h> #include <xen/irq.h> #include <xen/mm.h> -#include <asm/early_printk.h> #include <asm/device.h> #include <asm/exynos4210-uart.h> #include <asm/io.h> @@ -314,9 +313,7 @@ static int __init exynos4210_uart_init(struct dt_device_node *dev, u64 addr, size; if ( strcmp(config, "") ) - { - early_printk("WARNING: UART configuration is not supported\n"); - } + printk("WARNING: UART configuration is not supported\n"); uart = &exynos4210_com; @@ -329,21 +326,21 @@ static int __init exynos4210_uart_init(struct dt_device_node *dev, res = dt_device_get_address(dev, 0, &addr, &size); if ( res ) { - early_printk("exynos4210: Unable to retrieve the base" - " address of the UART\n"); + printk("exynos4210: Unable to retrieve the base" + " address of the UART\n"); return res; } uart->regs = ioremap_nocache(addr, size); if ( !uart->regs ) { - early_printk("exynos4210: Unable to map the UART memory\n"); + printk("exynos4210: Unable to map the UART memory\n"); return -ENOMEM; } res = dt_device_get_irq(dev, 0, &uart->irq); if ( res ) { - early_printk("exynos4210: Unable to retrieve the IRQ\n"); + printk("exynos4210: Unable to retrieve the IRQ\n"); return res; } diff --git a/xen/drivers/char/omap-uart.c b/xen/drivers/char/omap-uart.c index 321e636..ad5aabb 100644 --- a/xen/drivers/char/omap-uart.c +++ b/xen/drivers/char/omap-uart.c @@ -15,7 +15,6 @@ #include <xen/serial.h> #include <xen/init.h> #include <xen/irq.h> -#include <asm/early_printk.h> #include <xen/device_tree.h> #include <asm/device.h> #include <xen/errno.h> @@ -301,14 +300,14 @@ static int __init omap_uart_init(struct dt_device_node *dev, u64 addr, size; if ( strcmp(config, "") ) - early_printk("WARNING: UART configuration is not supported\n"); + printk("WARNING: UART configuration is not supported\n"); uart = &omap_com; res = dt_property_read_u32(dev, "clock-frequency", &clkspec); if ( !res ) { - early_printk("omap-uart: Unable to retrieve the clock frequency\n"); + printk("omap-uart: Unable to retrieve the clock frequency\n"); return -EINVAL; } @@ -321,22 +320,22 @@ static int __init omap_uart_init(struct dt_device_node *dev, res = dt_device_get_address(dev, 0, &addr, &size); if ( res ) { - early_printk("omap-uart: Unable to retrieve the base" - " address of the UART\n"); + printk("omap-uart: Unable to retrieve the base" + " address of the UART\n"); return res; } uart->regs = ioremap_attr(addr, size, PAGE_HYPERVISOR_NOCACHE); if ( !uart->regs ) { - early_printk("omap-uart: Unable to map the UART memory\n"); + printk("omap-uart: Unable to map the UART memory\n"); return -ENOMEM; } res = dt_device_get_irq(dev, 0, &uart->irq); if ( res ) { - early_printk("omap-uart: Unable to retrieve the IRQ\n"); + printk("omap-uart: Unable to retrieve the IRQ\n"); return res; } diff --git a/xen/drivers/char/pl011.c b/xen/drivers/char/pl011.c index 613b9eb..378d37e 100644 --- a/xen/drivers/char/pl011.c +++ b/xen/drivers/char/pl011.c @@ -22,7 +22,6 @@ #include <xen/serial.h> #include <xen/init.h> #include <xen/irq.h> -#include <asm/early_printk.h> #include <xen/device_tree.h> #include <xen/errno.h> #include <asm/device.h> @@ -107,7 +106,7 @@ static void __init pl011_init_preirq(struct serial_port *port) /* Baud rate already set: read it out from the divisor latch. */ divisor = (pl011_read(uart, IBRD) << 6) | (pl011_read(uart, FBRD)); if (!divisor) - early_panic("pl011: No Baud rate configured\n"); + panic("pl011: No Baud rate configured\n"); uart->baud = (uart->clock_hz << 2) / divisor; } /* This write must follow FBRD and IBRD writes. */ @@ -229,7 +228,7 @@ static int __init pl011_uart_init(struct dt_device_node *dev, if ( strcmp(config, "") ) { - early_printk("WARNING: UART configuration is not supported\n"); + printk("WARNING: UART configuration is not supported\n"); } uart = &pl011_com; @@ -243,15 +242,15 @@ static int __init pl011_uart_init(struct dt_device_node *dev, res = dt_device_get_address(dev, 0, &addr, &size); if ( res ) { - early_printk("pl011: Unable to retrieve the base" - " address of the UART\n"); + printk("pl011: Unable to retrieve the base" + " address of the UART\n"); return res; } uart->regs = ioremap_attr(addr, size, PAGE_HYPERVISOR_NOCACHE); if ( !uart->regs ) { - early_printk("pl011: Unable to map the UART memory\n"); + printk("pl011: Unable to map the UART memory\n"); return -ENOMEM; } @@ -259,7 +258,7 @@ static int __init pl011_uart_init(struct dt_device_node *dev, res = dt_device_get_irq(dev, 0, &uart->irq); if ( res ) { - early_printk("pl011: Unable to retrieve the IRQ\n"); + printk("pl011: Unable to retrieve the IRQ\n"); return res; } diff --git a/xen/drivers/video/arm_hdlcd.c b/xen/drivers/video/arm_hdlcd.c index 647f22c..2a5f72e 100644 --- a/xen/drivers/video/arm_hdlcd.c +++ b/xen/drivers/video/arm_hdlcd.c @@ -25,7 +25,6 @@ #include <xen/libfdt/libfdt.h> #include <xen/init.h> #include <xen/mm.h> -#include <asm/early_printk.h> #include "font.h" #include "lfb.h" #include "modelines.h" @@ -123,21 +122,21 @@ void __init video_init(void) if ( !dev ) { - early_printk("HDLCD: Cannot find node compatible with \"arm,hdcld\"\n"); + printk("HDLCD: Cannot find node compatible with \"arm,hdcld\"\n"); return; } res = dt_device_get_address(dev, 0, &hdlcd_start, &hdlcd_size); if ( !res ) { - early_printk("HDLCD: Unable to retrieve MMIO base address\n"); + printk("HDLCD: Unable to retrieve MMIO base address\n"); return; } cells = dt_get_property(dev, "framebuffer", &lenp); if ( !cells ) { - early_printk("HDLCD: Unable to retrieve framebuffer property\n"); + printk("HDLCD: Unable to retrieve framebuffer property\n"); return; } @@ -146,13 +145,13 @@ void __init video_init(void) if ( !hdlcd_start ) { - early_printk(KERN_ERR "HDLCD: address missing from device tree, disabling driver\n"); + printk(KERN_ERR "HDLCD: address missing from device tree, disabling driver\n"); return; } if ( !framebuffer_start ) { - early_printk(KERN_ERR "HDLCD: framebuffer address missing from device tree, disabling driver\n"); + printk(KERN_ERR "HDLCD: framebuffer address missing from device tree, disabling driver\n"); return; } @@ -166,13 +165,13 @@ void __init video_init(void) else if ( strlen(mode_string) < strlen("800x600@60") || strlen(mode_string) > sizeof(_mode_string) - 1 ) { - early_printk(KERN_ERR "HDLCD: invalid modeline=%s\n", mode_string); + printk(KERN_ERR "HDLCD: invalid modeline=%s\n", mode_string); return; } else { char *s = strchr(mode_string, '-'); if ( !s ) { - early_printk(KERN_INFO "HDLCD: bpp not found in modeline %s, assume 32 bpp\n", + printk(KERN_INFO "HDLCD: bpp not found in modeline %s, assume 32 bpp\n", mode_string); get_color_masks("32", &c); memcpy(_mode_string, mode_string, strlen(mode_string) + 1); @@ -180,13 +179,13 @@ void __init video_init(void) } else { if ( strlen(s) < 6 ) { - early_printk(KERN_ERR "HDLCD: invalid mode %s\n", mode_string); + printk(KERN_ERR "HDLCD: invalid mode %s\n", mode_string); return; } s++; if ( get_color_masks(s, &c) < 0 ) { - early_printk(KERN_WARNING "HDLCD: unsupported bpp %s\n", s); + printk(KERN_WARNING "HDLCD: unsupported bpp %s\n", s); return; } bytes_per_pixel = simple_strtoll(s, NULL, 10) / 8; @@ -205,23 +204,23 @@ void __init video_init(void) } if ( !videomode ) { - early_printk(KERN_WARNING "HDLCD: unsupported videomode %s\n", - _mode_string); + printk(KERN_WARNING "HDLCD: unsupported videomode %s\n", + _mode_string); return; } if ( framebuffer_size < bytes_per_pixel * videomode->xres * videomode->yres ) { - early_printk(KERN_ERR "HDLCD: the framebuffer is too small, disabling the HDLCD driver\n"); + printk(KERN_ERR "HDLCD: the framebuffer is too small, disabling the HDLCD driver\n"); return; } - early_printk(KERN_INFO "Initializing HDLCD driver\n"); + printk(KERN_INFO "Initializing HDLCD driver\n"); lfb = ioremap_wc(framebuffer_start, framebuffer_size); if ( !lfb ) { - early_printk(KERN_ERR "Couldn't map the framebuffer\n"); + printk(KERN_ERR "Couldn't map the framebuffer\n"); return; } memset(lfb, 0x00, bytes_per_pixel * videomode->xres * videomode->yres); diff --git a/xen/include/asm-arm/early_printk.h b/xen/include/asm-arm/early_printk.h index a58e3e7..6569397 100644 --- a/xen/include/asm-arm/early_printk.h +++ b/xen/include/asm-arm/early_printk.h @@ -18,33 +18,12 @@ #define EARLY_UART_VIRTUAL_ADDRESS \ (FIXMAP_ADDR(FIXMAP_CONSOLE) +(EARLY_UART_BASE_ADDRESS & ~PAGE_MASK)) -#endif - #ifndef __ASSEMBLY__ -#ifdef CONFIG_EARLY_PRINTK - void early_puts(const char *s); -void early_printk(const char *fmt, ...) - __attribute__((format (printf, 1, 2))); -void early_panic(const char *fmt, ...) __attribute__((noreturn)) - __attribute__((format (printf, 1, 2))); -#else - -static inline void early_puts(const char *) -{} - -static inline __attribute__((format (printf, 1, 2))) void -early_printk(const char *fmt, ...) -{} - -static inline void __attribute__((noreturn)) -__attribute__((format (printf, 1, 2))) early_panic(const char *fmt, ...) -{while(1);} +#endif /* !__ASSEMBLY__ */ #endif /* !CONFIG_EARLY_PRINTK */ -#endif /* __ASSEMBLY__ */ - #endif -- 1.8.3.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |