[kernel/f19] Add patch to fix oops from applesmc (rhbz 1011719)
Josh Boyer
jwboyer at fedoraproject.org
Fri Sep 27 16:27:59 UTC 2013
commit d4ad8aae96cc4af2152b2b65f414e5fcc53399c1
Author: Josh Boyer <jwboyer at fedoraproject.org>
Date: Fri Sep 27 12:24:29 2013 -0400
Add patch to fix oops from applesmc (rhbz 1011719)
...pplesmc-Check-key-count-before-proceeding.patch | 49 ++++++++++++++++++++
kernel.spec | 7 +++
2 files changed, 56 insertions(+), 0 deletions(-)
---
diff --git a/hwmon-applesmc-Check-key-count-before-proceeding.patch b/hwmon-applesmc-Check-key-count-before-proceeding.patch
new file mode 100644
index 0000000..76e7fe2
--- /dev/null
+++ b/hwmon-applesmc-Check-key-count-before-proceeding.patch
@@ -0,0 +1,49 @@
+From 5f4513864304672e6ea9eac60583eeac32e679f2 Mon Sep 17 00:00:00 2001
+From: Henrik Rydberg <rydberg at euromail.se>
+Date: Thu, 26 Sep 2013 06:33:16 +0000
+Subject: hwmon: (applesmc) Check key count before proceeding
+
+After reports from Chris and Josh Boyer of a rare crash in applesmc,
+Guenter pointed at the initialization problem fixed below. The patch
+has not been verified to fix the crash, but should be applied
+regardless.
+
+Reported-by: <jwboyer at fedoraproject.org>
+Suggested-by: Guenter Roeck <linux at roeck-us.net>
+Signed-off-by: Henrik Rydberg <rydberg at euromail.se>
+Cc: stable at vger.kernel.org
+Signed-off-by: Guenter Roeck <linux at roeck-us.net>
+---
+diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c
+index 62c2e32..98814d1 100644
+--- a/drivers/hwmon/applesmc.c
++++ b/drivers/hwmon/applesmc.c
+@@ -525,16 +525,25 @@ static int applesmc_init_smcreg_try(void)
+ {
+ struct applesmc_registers *s = &smcreg;
+ bool left_light_sensor, right_light_sensor;
++ unsigned int count;
+ u8 tmp[1];
+ int ret;
+
+ if (s->init_complete)
+ return 0;
+
+- ret = read_register_count(&s->key_count);
++ ret = read_register_count(&count);
+ if (ret)
+ return ret;
+
++ if (s->cache && s->key_count != count) {
++ pr_warn("key count changed from %d to %d\n",
++ s->key_count, count);
++ kfree(s->cache);
++ s->cache = NULL;
++ }
++ s->key_count = count;
++
+ if (!s->cache)
+ s->cache = kcalloc(s->key_count, sizeof(*s->cache), GFP_KERNEL);
+ if (!s->cache)
+--
+cgit v0.9.2
diff --git a/kernel.spec b/kernel.spec
index 3b6b131..2055b0e 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -777,6 +777,9 @@ Patch25113: rpc-let-xdr-layer-allocate-gssproxy-receieve-pages.patch
Patch25114: elevator-Fix-a-race-in-elevator-switching-and-md.patch
Patch25115: elevator-acquire-q-sysfs_lock-in-elevator_change.patch
+#rhbz 1011719
+Patch25116: hwmon-applesmc-Check-key-count-before-proceeding.patch
+
# END OF PATCH DEFINITIONS
%endif
@@ -1502,6 +1505,9 @@ ApplyPatch skge-fix-invalid-value-passed-to-pci_unmap_sigle.patch
ApplyPatch elevator-Fix-a-race-in-elevator-switching-and-md.patch
ApplyPatch elevator-acquire-q-sysfs_lock-in-elevator_change.patch
+#rhbz 1011719
+ApplyPatch hwmon-applesmc-Check-key-count-before-proceeding.patch
+
# END OF PATCH APPLICATIONS
%endif
@@ -2315,6 +2321,7 @@ fi
%changelog
* Fri Sep 27 2013 Josh Boyer <jwboyer at fedoraproject.org>
+- Add patch to fix oops from applesmc (rhbz 1011719)
- Add patches to fix soft lockup from elevator changes (rhbz 902012)
* Fri Sep 27 2013 Justin M. Forbes <jforbes at fedoraproject.org> - 3.11.2-200
More information about the scm-commits
mailing list