diff options
| author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2010-01-27 15:43:21 -0500 |
|---|---|---|
| committer | Anton Vorontsov <avorontsov@ru.mvista.com> | 2010-01-29 09:00:18 -0500 |
| commit | 12b336a8b4ea8652372f88521bf55cef7f5d5283 (patch) | |
| tree | 81f448a4c122a03c2d52d95a838e5f8af4e12693 | |
| parent | be8cde8b24c9dca1e54598690115eee5b1476519 (diff) | |
wm97xx_battery: Handle missing platform data gracefully
Don't unconditionally dereference the WM97xx core platform data since
it may not be present, causing an oops.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
| -rw-r--r-- | drivers/power/wm97xx_battery.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/power/wm97xx_battery.c b/drivers/power/wm97xx_battery.c index fa39e759a275..6ea3cb5837c7 100644 --- a/drivers/power/wm97xx_battery.c +++ b/drivers/power/wm97xx_battery.c | |||
| @@ -175,8 +175,14 @@ static int __devinit wm97xx_bat_probe(struct platform_device *dev) | |||
| 175 | dev_err(&dev->dev, "Do not pass platform_data through " | 175 | dev_err(&dev->dev, "Do not pass platform_data through " |
| 176 | "wm97xx_bat_set_pdata!\n"); | 176 | "wm97xx_bat_set_pdata!\n"); |
| 177 | return -EINVAL; | 177 | return -EINVAL; |
| 178 | } else | 178 | } |
| 179 | pdata = wmdata->batt_pdata; | 179 | |
| 180 | if (!wmdata) { | ||
| 181 | dev_err(&dev->dev, "No platform data supplied\n"); | ||
| 182 | return -EINVAL; | ||
| 183 | } | ||
| 184 | |||
| 185 | pdata = wmdata->batt_pdata; | ||
| 180 | 186 | ||
| 181 | if (dev->id != -1) | 187 | if (dev->id != -1) |
| 182 | return -EINVAL; | 188 | return -EINVAL; |
