diff options
| author | Baruch Siach <[email protected]> | 2009-12-21 16:26:46 -0800 |
|---|---|---|
| committer | Greg Kroah-Hartman <[email protected]> | 2010-03-02 14:43:10 -0800 |
| commit | bbcd18d1b37413d25eaf4580682b1b8e4a09ff5e (patch) | |
| tree | e48354ffa1eb1efd10448ae1006fa3772f45f1fc | |
| parent | ac6ec5b1de5d1d5afcbe88d73c05df71dca0ac39 (diff) | |
serial: imx: fix NULL dereference Oops when pdata == NULL
The platform code doesn't have to provide platform data to get sensible
default behaviour from the imx serial driver.
This patch does not handle NULL dereference in the IrDA case, which still
requires a valid platform data pointer (in imx_startup()/imx_shutdown()),
since I don't know whether there is a sensible default behaviour, or
should the operation just fail cleanly.
Signed-off-by: Baruch Siach <[email protected]>
Cc: Baruch Siach <[email protected]>
Cc: Alan Cox <[email protected]>
Cc: Sascha Hauer <[email protected]>
Cc: Oskar Schirmer <[email protected]>
Cc: Fabian Godehardt <[email protected]>
Cc: Daniel Glöckner <[email protected]>
Cc: stable <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
| -rw-r--r-- | drivers/serial/imx.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/serial/imx.c b/drivers/serial/imx.c index 60d665a17a88..d00fcf8e6c70 100644 --- a/drivers/serial/imx.c +++ b/drivers/serial/imx.c @@ -1279,7 +1279,7 @@ static int serial_imx_probe(struct platform_device *pdev) sport->use_irda = 1; #endif - if (pdata->init) { + if (pdata && pdata->init) { ret = pdata->init(pdev); if (ret) goto clkput; @@ -1292,7 +1292,7 @@ static int serial_imx_probe(struct platform_device *pdev) return 0; deinit: - if (pdata->exit) + if (pdata && pdata->exit) pdata->exit(pdev); clkput: clk_put(sport->clk); @@ -1321,7 +1321,7 @@ static int serial_imx_remove(struct platform_device *pdev) clk_disable(sport->clk); - if (pdata->exit) + if (pdata && pdata->exit) pdata->exit(pdev); iounmap(sport->port.membase); |