diff -ur linux.vanilla/drivers/char/serial.c linux/drivers/char/serial.c --- linux.vanilla/drivers/char/serial.c Thu Feb 22 20:50:18 2001 +++ linux/drivers/char/serial.c Thu Feb 22 23:01:48 2001 @@ -3876,7 +3876,8 @@ return 0; } req->io_type = SERIAL_IO_MEM; - req->iomem_base = ioremap(port, board->uart_offset); + if ((req->iomem_base = ioremap(port, board->uart_offset)) == NULL) + return 1; req->iomem_reg_shift = board->reg_shift; req->port = 0; return 0; @@ -4010,7 +4011,8 @@ data | pci_config); /* enable/disable interrupts */ - p = ioremap(pci_resource_start(dev, 0), 0x80); + if ((p = ioremap(pci_resource_start(dev, 0), 0x80)) == NULL) + return 1; writel(enable ? irq_config : 0x00, (unsigned long)p + 0x4c); iounmap(p); @@ -4053,7 +4055,8 @@ if (!enable) return 0; - p = ioremap(pci_resource_start(dev, 0), 0x80); + if ((p = ioremap(pci_resource_start(dev, 0), 0x80)) == NULL) + return 1; switch (dev->device & 0xfff8) { case PCI_DEVICE_ID_SIIG_1S_10x: /* 1S */