From 7f25301d83432efb0e7bb3fba288001a7bb03fdb Mon Sep 17 00:00:00 2001 From: Wei Yongjun Date: Wed, 5 Jun 2013 10:04:49 +0800 Subject: serial: omap: fix potential NULL pointer dereference in serial_omap_runtime_suspend() The dereference to 'up' should be moved below the NULL test. Introduced by commit ddd85e225c8885b5e4419b0499ab27100e7c366a (serial: omap: prevent runtime PM for "no_console_suspend") Signed-off-by: Wei Yongjun Acked-by: Tony Lindgren Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c index 1aaeca8..156b5aa 100644 --- a/drivers/tty/serial/omap-serial.c +++ b/drivers/tty/serial/omap-serial.c @@ -1613,6 +1613,9 @@ static int serial_omap_runtime_suspend(struct device *dev) struct uart_omap_port *up = dev_get_drvdata(dev); struct omap_uart_port_info *pdata = dev->platform_data; + if (!up) + return -EINVAL; + /* * When using 'no_console_suspend', the console UART must not be * suspended. Since driver suspend is managed by runtime suspend, @@ -1623,9 +1626,6 @@ static int serial_omap_runtime_suspend(struct device *dev) uart_console(&up->port)) return -EBUSY; - if (!up) - return -EINVAL; - if (!pdata) return 0; -- cgit v0.10.2