Skip to content

Commit

Permalink
serial: imx: fix NULL dereference Oops when pdata == NULL
Browse files Browse the repository at this point in the history
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 <baruch@tkos.co.il>
Cc: Baruch Siach <baruch@tkos.co.il>
Cc: Alan Cox <alan@linux.intel.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Oskar Schirmer <os@emlix.com>
Cc: Fabian Godehardt <fg@emlix.com>
Cc: Daniel Glöckner <dg@emlix.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Baruch Siach authored and Greg Kroah-Hartman committed Mar 2, 2010
1 parent ac6ec5b commit bbcd18d
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions drivers/serial/imx.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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);
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit bbcd18d

Please sign in to comment.