36 lines
1 KiB
Diff
36 lines
1 KiB
Diff
|
From b3cde198b17f504643cc1eeffc4623f03326f436 Mon Sep 17 00:00:00 2001
|
||
|
From: Dan Carpenter <dan.carpenter@oracle.com>
|
||
|
Date: Fri, 18 Nov 2016 14:35:57 +0300
|
||
|
Subject: pinctrl: sunxi: Testing the wrong variable
|
||
|
|
||
|
Smatch complains that we dereference "map" before testing it for NULL
|
||
|
which is true. We should be testing "*map" instead. Also on the error
|
||
|
path, we should free *map and set it to NULL.
|
||
|
|
||
|
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
|
||
|
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||
|
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
||
|
---
|
||
|
drivers/pinctrl/sunxi/pinctrl-sunxi.c | 5 +++--
|
||
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||
|
|
||
|
--- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c
|
||
|
+++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
|
||
|
@@ -398,13 +398,14 @@ static int sunxi_pctrl_dt_node_to_map(st
|
||
|
* map array
|
||
|
*/
|
||
|
*map = krealloc(*map, i * sizeof(struct pinctrl_map), GFP_KERNEL);
|
||
|
- if (!map)
|
||
|
+ if (!*map)
|
||
|
return -ENOMEM;
|
||
|
|
||
|
return 0;
|
||
|
|
||
|
err_free_map:
|
||
|
- kfree(map);
|
||
|
+ kfree(*map);
|
||
|
+ *map = NULL;
|
||
|
return ret;
|
||
|
}
|
||
|
|