[PATCH 2/2] rdc321x-wtd: fix null pointer dereference while accessing platform_data

From: Florian Fainelli
Date: Fri Nov 26 2010 - 04:40:21 EST


rdc321x-wdt currently fetches its driver specific data by using the platform_
device->platform_data pointer, this is wrong because the mfd device which
registers our platform_device has been added using mfd_add_device() which sets
the platform_device->driver_data pointer instead.

Signed-off-by: Florian Fainelli <florian@xxxxxxxxxxx>
CC: stable@xxxxxxxxxx
---
This patch should be applied for the next 2.6.36 stable release.

diff --git a/drivers/watchdog/rdc321x_wdt.c b/drivers/watchdog/rdc321x_wdt.c
index 428f8a1..3939e53 100644
--- a/drivers/watchdog/rdc321x_wdt.c
+++ b/drivers/watchdog/rdc321x_wdt.c
@@ -231,7 +231,7 @@ static int __devinit rdc321x_wdt_probe(struct platform_device *pdev)
struct resource *r;
struct rdc321x_wdt_pdata *pdata;

- pdata = pdev->dev.platform_data;
+ pdata = platform_get_drvdata(pdev);
if (!pdata) {
dev_err(&pdev->dev, "no platform data supplied\n");
return -ENODEV;
diff --git a/drivers/watchdog/rdc321x_wdt.c b/drivers/watchdog/rdc321x_wdt.c
index 428f8a1..3939e53 100644
--- a/drivers/watchdog/rdc321x_wdt.c
+++ b/drivers/watchdog/rdc321x_wdt.c
@@ -231,7 +231,7 @@ static int __devinit rdc321x_wdt_probe(struct platform_device *pdev)
struct resource *r;
struct rdc321x_wdt_pdata *pdata;

- pdata = pdev->dev.platform_data;
+ pdata = platform_get_drvdata(pdev);
if (!pdata) {
dev_err(&pdev->dev, "no platform data supplied\n");
return -ENODEV;