regulator: gpio-regulator: Don't oops on missing regulator-type property

Catch missing regulator-type property in DT and return an error
gracefully instead of deferencing a NULL pointer and crashing.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
Laurent Pinchart 2013-11-09 13:12:28 +01:00 committed by Mark Brown
parent 5e01dc7b26
commit 251b9c21d2
1 changed files with 6 additions and 1 deletions

View File

@ -139,6 +139,7 @@ of_get_gpio_regulator_config(struct device *dev, struct device_node *np)
struct property *prop; struct property *prop;
const char *regtype; const char *regtype;
int proplen, gpio, i; int proplen, gpio, i;
int ret;
config = devm_kzalloc(dev, config = devm_kzalloc(dev,
sizeof(struct gpio_regulator_config), sizeof(struct gpio_regulator_config),
@ -202,7 +203,11 @@ of_get_gpio_regulator_config(struct device *dev, struct device_node *np)
} }
config->nr_states = i; config->nr_states = i;
of_property_read_string(np, "regulator-type", &regtype); ret = of_property_read_string(np, "regulator-type", &regtype);
if (ret < 0) {
dev_err(dev, "Missing 'regulator-type' property\n");
return ERR_PTR(-EINVAL);
}
if (!strncmp("voltage", regtype, 7)) if (!strncmp("voltage", regtype, 7))
config->type = REGULATOR_VOLTAGE; config->type = REGULATOR_VOLTAGE;