Message ID | 1484812844-10598-1-git-send-email-arvind.yadav.cs@gmail.com (mailing list archive) |
---|---|
State | Awaiting Upstream, archived |
Headers | show |
On Thu, Jan 19, 2017 at 10:00 AM, Arvind Yadav <arvind.yadav.cs@gmail.com> wrote: > Here, If ioremap_nocache will fail. It will return NULL. > Kernel can run into a NULL-pointer dereference. > This error check will avoid NULL pointer dereference. > uart.port.mapbase = address; > uart.port.membase = ioremap_nocache(address, 16); > + if (!uart.port.membase) { > + dev_warn(&dev->dev, "Failed to map memory\n"); > + return -ENOMEM; > + } You also may do something like void __iomem *base; ... base = ioremap_nocache(...); if (!base) return -ENOMEM; // I doubt the message is useful, up to you memset(&uart, 0, sizeof(uart)); ... uart.port.membase = base;
diff --git a/drivers/tty/serial/8250/8250_gsc.c b/drivers/tty/serial/8250/8250_gsc.c index b1e6ae9..63306de 100644 --- a/drivers/tty/serial/8250/8250_gsc.c +++ b/drivers/tty/serial/8250/8250_gsc.c @@ -60,6 +60,10 @@ static int __init serial_init_chip(struct parisc_device *dev) 7272727 : 1843200; uart.port.mapbase = address; uart.port.membase = ioremap_nocache(address, 16); + if (!uart.port.membase) { + dev_warn(&dev->dev, "Failed to map memory\n"); + return -ENOMEM; + } uart.port.irq = dev->irq; uart.port.flags = UPF_BOOT_AUTOCONF; uart.port.dev = &dev->dev;
Here, If ioremap_nocache will fail. It will return NULL. Kernel can run into a NULL-pointer dereference. This error check will avoid NULL pointer dereference. Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com> --- drivers/tty/serial/8250/8250_gsc.c | 4 ++++ 1 file changed, 4 insertions(+)