Hi all,
16x50 serial driver doesn't check ioremap() return value.
Atached patch should fix this it.
Best regards.
--
Andrey Panin | Embedded systems software engineer
[EMAIL PROTECTED] | PGP key: http://www.orbita1.ru/~pazke/AndreyPanin.asc
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 */
PGP signature