Jelajahi Sumber

pinctrl: pxa: pxa2xx: add pin control skeleton

The wrong free functions were used to release temporary buffers.

This didn't show up in the normal driver's life. Yet in suspend to RAM,
the managed resource list is walked, and as memory was released, the
list is corrupted and make the kernel Oops.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Robert Jarzmik 9 tahun lalu
induk
melakukan
e670b29815
1 mengubah file dengan 2 tambahan dan 2 penghapusan
  1. 2 2
      drivers/pinctrl/pxa/pinctrl-pxa2xx.c

+ 2 - 2
drivers/pinctrl/pxa/pinctrl-pxa2xx.c

@@ -292,7 +292,7 @@ static int pxa2xx_build_functions(struct pxa_pinctrl *pctl)
 	if (!pctl->functions)
 	if (!pctl->functions)
 		return -ENOMEM;
 		return -ENOMEM;
 
 
-	kfree(functions);
+	devm_kfree(pctl->dev, functions);
 	return 0;
 	return 0;
 }
 }
 
 
@@ -328,7 +328,7 @@ static int pxa2xx_build_groups(struct pxa_pinctrl *pctl)
 		memcpy(func->groups, gtmp, ngroups * sizeof(*gtmp));
 		memcpy(func->groups, gtmp, ngroups * sizeof(*gtmp));
 	}
 	}
 
 
-	kfree(gtmp);
+	devm_kfree(pctl->dev, gtmp);
 	return 0;
 	return 0;
 }
 }