summaryrefslogtreecommitdiffstats
path: root/releases/2.6.32.58/pm-sleep-fix-read_unlock_usermodehelper-call.patch
diff options
context:
space:
mode:
Diffstat (limited to 'releases/2.6.32.58/pm-sleep-fix-read_unlock_usermodehelper-call.patch')
-rw-r--r--releases/2.6.32.58/pm-sleep-fix-read_unlock_usermodehelper-call.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/releases/2.6.32.58/pm-sleep-fix-read_unlock_usermodehelper-call.patch b/releases/2.6.32.58/pm-sleep-fix-read_unlock_usermodehelper-call.patch
new file mode 100644
index 0000000..eff200d
--- /dev/null
+++ b/releases/2.6.32.58/pm-sleep-fix-read_unlock_usermodehelper-call.patch
@@ -0,0 +1,40 @@
+From srivatsa.bhat@linux.vnet.ibm.com Thu Mar 1 13:32:36 2012
+From: "Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>
+Date: Wed, 29 Feb 2012 12:24:56 +0530
+Subject: PM / Sleep: Fix read_unlock_usermodehelper() call.
+To: gregkh@linuxfoundation.org
+Cc: stable@vger.kernel.org, rjw@sisk.pl, valdis.kletnieks@vt.edu, cloos@hjcloos.com, riesebie@lxtec.de, torvalds@linux-foundation.org, penguin-kernel@i-love.sakura.ne.jp, srivatsa.bhat@linux.vnet.ibm.com
+Message-ID: <20120229065409.4761.81272.stgit@srivatsabhat.in.ibm.com>
+
+
+From: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
+
+[ Upstream commit e4c89a508f4385a0cd8681c2749a2cd2fa476e40 ]
+
+Commit b298d289
+ "PM / Sleep: Fix freezer failures due to racy usermodehelper_is_disabled()"
+added read_unlock_usermodehelper() but read_unlock_usermodehelper() is called
+without read_lock_usermodehelper() when kmalloc() failed.
+
+Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
+Acked-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
+Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
+Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+
+ drivers/base/firmware_class.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/drivers/base/firmware_class.c
++++ b/drivers/base/firmware_class.c
+@@ -493,8 +493,7 @@ _request_firmware(const struct firmware
+ if (!firmware) {
+ dev_err(device, "%s: kmalloc(struct firmware) failed\n",
+ __func__);
+- retval = -ENOMEM;
+- goto out;
++ return -ENOMEM;
+ }
+
+ for (builtin = __start_builtin_fw; builtin != __end_builtin_fw;