diff options
Diffstat (limited to 'drivers/misc/vexpress-syscfg.c')
| -rw-r--r-- | drivers/misc/vexpress-syscfg.c | 12 | 
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/misc/vexpress-syscfg.c b/drivers/misc/vexpress-syscfg.c index 73068e50e56d..3250fc1df0aa 100644 --- a/drivers/misc/vexpress-syscfg.c +++ b/drivers/misc/vexpress-syscfg.c @@ -199,7 +199,7 @@ static struct regmap *vexpress_syscfg_regmap_init(struct device *dev,  	func = kzalloc(sizeof(*func) + sizeof(*func->template) * num,  			GFP_KERNEL);  	if (!func) -		return NULL; +		return ERR_PTR(-ENOMEM);  	func->syscfg = syscfg;  	func->num_templates = num; @@ -231,10 +231,14 @@ static struct regmap *vexpress_syscfg_regmap_init(struct device *dev,  	func->regmap = regmap_init(dev, NULL, func,  			&vexpress_syscfg_regmap_config); -	if (IS_ERR(func->regmap)) +	if (IS_ERR(func->regmap)) { +		void *err = func->regmap; +  		kfree(func); -	else -		list_add(&func->list, &syscfg->funcs); +		return err; +	} + +	list_add(&func->list, &syscfg->funcs);  	return func->regmap;  }  |