If func->pins could not be allocated, one must also free
func variable that was allocated previously.

Signed-off-by: Francois Berder <[email protected]>
---
 drivers/pinctrl/pinctrl-single.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/pinctrl/pinctrl-single.c b/drivers/pinctrl/pinctrl-single.c
index c96b293aadf..42980e097e0 100644
--- a/drivers/pinctrl/pinctrl-single.c
+++ b/drivers/pinctrl/pinctrl-single.c
@@ -282,8 +282,10 @@ static struct single_func *single_allocate_function(struct 
udevice *dev,
 
        func->pins = devm_kmalloc(dev, sizeof(unsigned int) * group_pins,
                                  GFP_KERNEL);
-       if (!func->pins)
+       if (!func->pins) {
+               devm_kfree(dev, func);
                return ERR_PTR(-ENOMEM);
+       }
 
        return func;
 }
-- 
2.43.0


Reply via email to