From: Bjorn Helgaas Check for ioremap failure and use correct UPIO_{MEM,PORT} constants. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton --- 25-akpm/drivers/firmware/pcdp.c | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-) diff -puN drivers/firmware/pcdp.c~pcdp-console-detection-support-fixes drivers/firmware/pcdp.c --- 25/drivers/firmware/pcdp.c~pcdp-console-detection-support-fixes 2004-06-28 20:26:06.145372840 -0700 +++ 25-akpm/drivers/firmware/pcdp.c 2004-06-28 20:26:06.148372384 -0700 @@ -60,6 +60,7 @@ setup_serial_console(int rev, struct pcd #ifdef CONFIG_SERIAL_8250_CONSOLE struct uart_port port; static char options[16]; + int mapsize = 64; memset(&port, 0, sizeof(port)); #ifdef CONFIG_KGDB_EARLY @@ -71,11 +72,16 @@ setup_serial_console(int rev, struct pcd if (uart->addr.address_space_id == ACPI_ADR_SPACE_SYSTEM_MEMORY) { port.mapbase = uart->addr.address; - port.membase = ioremap(port.mapbase, 64); - port.iotype = SERIAL_IO_MEM; + port.membase = ioremap(port.mapbase, mapsize); + if (!port.membase) { + printk(KERN_ERR "%s: couldn't ioremap 0x%lx-0x%lx\n", + __FUNCTION__, port.mapbase, port.mapbase + mapsize); + return; + } + port.iotype = UPIO_MEM; } else if (uart->addr.address_space_id == ACPI_ADR_SPACE_SYSTEM_IO) { port.iobase = uart->addr.address; - port.iotype = SERIAL_IO_PORT; + port.iotype = UPIO_PORT; } else return; @@ -112,7 +118,7 @@ setup_serial_console(int rev, struct pcd add_preferred_console("ttyS", port.line, options); printk(KERN_INFO "PCDP: serial console at %s 0x%lx (ttyS%d, options %s)\n", - port.iotype == SERIAL_IO_MEM ? "MMIO" : "I/O", + port.iotype == UPIO_MEM ? "MMIO" : "I/O", uart->addr.address, port.line, options); #endif } _