aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/regulator
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@gmail.com>2011-11-27 07:07:57 -0500
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-11-27 14:46:31 -0500
commit22d881c068403c155fbe320c0a26e3b1bcdaa1b8 (patch)
tree49f543948e610cb7ad2b49dc55861868383ee4e5 /drivers/regulator
parentbc91396b0b0a0d1300e151264b81f010c72a8bbf (diff)
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>
Diffstat (limited to 'drivers/regulator')
-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 = {
160 160
161static int __devinit reg_fixed_voltage_probe(struct platform_device *pdev) 161static int __devinit reg_fixed_voltage_probe(struct platform_device *pdev)
162{ 162{
163 struct fixed_voltage_config *config = pdev->dev.platform_data; 163 struct fixed_voltage_config *config;
164 struct fixed_voltage_data *drvdata; 164 struct fixed_voltage_data *drvdata;
165 int ret; 165 int ret;
166 166
167 if (pdev->dev.of_node) 167 if (pdev->dev.of_node)
168 config = of_get_fixed_voltage_config(&pdev->dev); 168 config = of_get_fixed_voltage_config(&pdev->dev);
169 else
170 config = pdev->dev.platform_data;
171
172 if (!config)
173 return -ENOMEM;
169 174
170 drvdata = kzalloc(sizeof(struct fixed_voltage_data), GFP_KERNEL); 175 drvdata = kzalloc(sizeof(struct fixed_voltage_data), GFP_KERNEL);
171 if (drvdata == NULL) { 176 if (drvdata == NULL) {