summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2012-08-03 12:46:29 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2012-08-03 12:47:56 -0400
commit9860579d0e2236325ff8aa02bebddb967bcfb8a6 (patch)
tree2167e3e67751fa0977dae8ea92df7097ab86d42b
parentc304ccb202f396d052fc4049ced4580c99eb9e3a (diff)
downloadlongterm-queue-2.6.34-9860579d0e2236325ff8aa02bebddb967bcfb8a6.tar.gz
add ACPI oops avoid patch
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r--queue/ACPI-AC-prevent-OOPS-on-some-boxes-due-to-missing-ch.patch43
-rw-r--r--queue/series2
2 files changed, 45 insertions, 0 deletions
diff --git a/queue/ACPI-AC-prevent-OOPS-on-some-boxes-due-to-missing-ch.patch b/queue/ACPI-AC-prevent-OOPS-on-some-boxes-due-to-missing-ch.patch
new file mode 100644
index 0000000..75aea45
--- /dev/null
+++ b/queue/ACPI-AC-prevent-OOPS-on-some-boxes-due-to-missing-ch.patch
@@ -0,0 +1,43 @@
+From 723869590f1e7dc81b155b78514d096fdd9c2a16 Mon Sep 17 00:00:00 2001
+From: Lan Tianyu <tianyu.lan@intel.com>
+Date: Fri, 20 Jul 2012 13:29:16 +0800
+Subject: [PATCH] ACPI/AC: prevent OOPS on some boxes due to missing check
+ power_supply_register() return value check
+
+commit f197ac13f6eeb351b31250b9ab7d0da17434ea36 upstream.
+
+In the ac.c, power_supply_register()'s return value is not checked.
+
+As a result, the driver's add() ops may return success
+even though the device failed to initialize.
+
+For example, some BIOS may describe two ACADs in the same DSDT.
+The second ACAD device will fail to register,
+but ACPI driver's add() ops returns sucessfully.
+The ACPI device will receive ACPI notification and cause OOPS.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=772730
+
+Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
+Cc: stable@vger.kernel.org
+Signed-off-by: Len Brown <len.brown@intel.com>
+Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
+
+diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c
+index 56205a0..4ea5daf 100644
+--- a/drivers/acpi/ac.c
++++ b/drivers/acpi/ac.c
+@@ -288,7 +288,9 @@ static int acpi_ac_add(struct acpi_device *device)
+ ac->charger.properties = ac_props;
+ ac->charger.num_properties = ARRAY_SIZE(ac_props);
+ ac->charger.get_property = get_ac_property;
+- power_supply_register(&ac->device->dev, &ac->charger);
++ result = power_supply_register(&ac->device->dev, &ac->charger);
++ if (result)
++ goto end;
+ #endif
+
+ printk(KERN_INFO PREFIX "%s [%s] (%s)\n",
+--
+1.7.12.rc1.1.gbce1580
+
diff --git a/queue/series b/queue/series
index ad72fac..a031596 100644
--- a/queue/series
+++ b/queue/series
@@ -106,3 +106,5 @@ drivers-net-rionet.c-fix-ethernet-address-macros-for.patch
ext2-ext3-ext4-don-t-inherit-APPEND_FL-or-IMMUTABLE_.patch
USB-Serial-Add-device-ID-for-Sierra-Wireless-MC8305.patch
USB-Serial-Add-PID-0xF7C0-to-FTDI-SIO-driver-for-a-z.patch
+#misc
+ACPI-AC-prevent-OOPS-on-some-boxes-due-to-missing-ch.patch