aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@gmail.com>2011-11-27 20:07:57 +0800
committerEric Miao <eric.miao@linaro.org>2012-01-11 21:45:35 +0800
commitd61d1cb0f9ce607e5ef86d34beff435608df36cd (patch)
tree8a55a99f76f0b1ff954c98c0b760b7ae8c42efb4
parentd67b3c3dba5cfa0437ea0bcad59d3ceae06542d1 (diff)
downloadlinux-linaro-d61d1cb0f9ce607e5ef86d34beff435608df36cd.tar.gz
regulator: Avoid potential NULL dereference in reg_fixed_voltage_probe()
of_get_fixed_voltage_config() may return NULL, return -ENOMEM in this case so we don't dereference NULL pointer. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-rw-r--r--drivers/regulator/fixed.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/regulator/fixed.c b/drivers/regulator/fixed.c
index 703c26b756d..ebec5e06dfa 100644
--- a/drivers/regulator/fixed.c
+++ b/drivers/regulator/fixed.c
@@ -160,12 +160,17 @@ static struct regulator_ops fixed_voltage_ops = {
static int __devinit reg_fixed_voltage_probe(struct platform_device *pdev)
{
- struct fixed_voltage_config *config = pdev->dev.platform_data;
+ struct fixed_voltage_config *config;
struct fixed_voltage_data *drvdata;
int ret;
if (pdev->dev.of_node)
config = of_get_fixed_voltage_config(&pdev->dev);
+ else
+ config = pdev->dev.platform_data;
+
+ if (!config)
+ return -ENOMEM;
drvdata = kzalloc(sizeof(struct fixed_voltage_data), GFP_KERNEL);
if (drvdata == NULL) {