[kernel/f20] Add patch to fix list corruption from pinctrl (rhbz 1051918)

Josh Boyer jwboyer at fedoraproject.org
Wed Feb 12 18:47:36 UTC 2014


commit aa5810928ea0d03d65e5c2c6ea1fc8195af2b172
Author: Josh Boyer <jwboyer at fedoraproject.org>
Date:   Wed Feb 12 13:46:50 2014 -0500

    Add patch to fix list corruption from pinctrl (rhbz 1051918)

 kernel.spec                            |    7 ++++++
 pinctrl-protect-pinctrl_list-add.patch |   38 ++++++++++++++++++++++++++++++++
 2 files changed, 45 insertions(+), 0 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index e990b0a..6d5f490 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -763,6 +763,9 @@ Patch25195: cgroup-fixes.patch
 Patch25196: ipv6-introduce-IFA_F_NOPREFIXROUTE-and-IFA_F_MANAGETEMPADDR-flags.patch
 Patch25197: ipv6-addrconf-revert-if_inet6ifa_flag-format.patch
 
+#rhbz 1051918
+Patch25198: pinctrl-protect-pinctrl_list-add.patch
+
 # END OF PATCH DEFINITIONS
 
 %endif
@@ -1482,6 +1485,9 @@ ApplyPatch cgroup-fixes.patch
 ApplyPatch ipv6-introduce-IFA_F_NOPREFIXROUTE-and-IFA_F_MANAGETEMPADDR-flags.patch
 ApplyPatch ipv6-addrconf-revert-if_inet6ifa_flag-format.patch
 
+#rhbz 1051918
+ApplyPatch pinctrl-protect-pinctrl_list-add.patch
+
 
 # END OF PATCH APPLICATIONS
 
@@ -2295,6 +2301,7 @@ fi
 #                 ||     ||
 %changelog
 * Wed Feb 12 2014 Josh Boyer <jwboyer at fedoraproject.org>
+- Add patch to fix list corruption from pinctrl (rhbz 1051918)
 - Add IFA_FLAGS for IPv6 temporary addresses back (rhbz 1064430)
 - Fix cgroup destroy oops (rhbz 1045755)
 - Fix backtrace in amd_e400_idle (rhbz 1031296)
diff --git a/pinctrl-protect-pinctrl_list-add.patch b/pinctrl-protect-pinctrl_list-add.patch
new file mode 100644
index 0000000..3cd9c62
--- /dev/null
+++ b/pinctrl-protect-pinctrl_list-add.patch
@@ -0,0 +1,38 @@
+From 7b320cb1ed2dbd2c5f2a778197baf76fd6bf545a Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka at redhat.com>
+Date: Tue, 4 Feb 2014 09:07:09 +0100
+Subject: [PATCH] pinctrl: protect pinctrl_list add
+
+We have few fedora bug reports about list corruption on pinctrl,
+for example:
+https://bugzilla.redhat.com/show_bug.cgi?id=1051918
+
+Most likely corruption happen due lack of protection of pinctrl_list
+when adding new nodes to it. Patch corrects that.
+
+Fixes: 42fed7ba44e ("pinctrl: move subsystem mutex to pinctrl_dev struct")
+Cc: stable at vger.kernel.org
+Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
+Acked-by: Stephen Warren <swarren at nvidia.com>
+Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
+---
+ drivers/pinctrl/core.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
+index 5ee61a4..cab020a 100644
+--- a/drivers/pinctrl/core.c
++++ b/drivers/pinctrl/core.c
+@@ -851,7 +851,9 @@ static struct pinctrl *create_pinctrl(struct device *dev)
+ 	kref_init(&p->users);
+ 
+ 	/* Add the pinctrl handle to the global list */
++	mutex_lock(&pinctrl_list_mutex);
+ 	list_add_tail(&p->node, &pinctrl_list);
++	mutex_unlock(&pinctrl_list_mutex);
+ 
+ 	return p;
+ }
+-- 
+1.8.5.3
+


More information about the scm-commits mailing list