rpms/kernel/F-11 wmi-check-wmi-get-event-data-return-value.patch, NONE, 1.1 kernel.spec, 1.1791, 1.1792 linux-2.6-autoload-wmi.patch, 1.2, 1.3

Chuck Ebbert cebbert at fedoraproject.org
Wed Jan 6 02:27:06 UTC 2010


Author: cebbert

Update of /cvs/pkgs/rpms/kernel/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv19628

Modified Files:
	kernel.spec linux-2.6-autoload-wmi.patch 
Added Files:
	wmi-check-wmi-get-event-data-return-value.patch 
Log Message:
Another WMI oops fix, also sort out which WMI fixes go upstream.

wmi-check-wmi-get-event-data-return-value.patch:
 dell-wmi.c |    7 ++++++-
 hp-wmi.c   |    7 ++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

--- NEW FILE wmi-check-wmi-get-event-data-return-value.patch ---
From: Len Brown <len.brown at intel.com>
Date: Sun, 27 Dec 2009 04:02:24 +0000 (-0500)
Subject: dell-wmi, hp-wmi, msi-wmi: check wmi_get_event_data() return value
X-Git-Tag: v2.6.33-rc3~32^2~4^2~3
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=fda11e61ff8a4e3a8ebbd434e46560b67cc0ca9d

dell-wmi, hp-wmi, msi-wmi: check wmi_get_event_data() return value

[ backport to 2.6.32 ]

When acpi_evaluate_object() is passed ACPI_ALLOCATE_BUFFER,
the caller must kfree the returned buffer if AE_OK is returned.

The callers of wmi_get_event_data() pass ACPI_ALLOCATE_BUFFER,
and thus must check its return value before accessing
or kfree() on the buffer.

Signed-off-by: Len Brown <len.brown at intel.com>
---

diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
index 4c7e702..500af8c 100644
--- a/drivers/platform/x86/dell-wmi.c
+++ b/drivers/platform/x86/dell-wmi.c
@@ -202,8 +202,13 @@ static void dell_wmi_notify(u32 value, void *context)
 	struct acpi_buffer response = { ACPI_ALLOCATE_BUFFER, NULL };
 	static struct key_entry *key;
 	union acpi_object *obj;
+	acpi_status status;
 
-	wmi_get_event_data(value, &response);
+	status = wmi_get_event_data(value, &response);
+	if (status != AE_OK) {
+		printk(KERN_INFO "dell-wmi: bad event status 0x%x\n", status);
+		return;
+	}
 
 	obj = (union acpi_object *)response.pointer;
 
diff --git a/drivers/platform/x86/hp-wmi.c b/drivers/platform/x86/hp-wmi.c
index 18bf741..5b648f0 100644
--- a/drivers/platform/x86/hp-wmi.c
+++ b/drivers/platform/x86/hp-wmi.c
@@ -338,8 +338,13 @@ static void hp_wmi_notify(u32 value, void *context)
 	struct acpi_buffer response = { ACPI_ALLOCATE_BUFFER, NULL };
 	static struct key_entry *key;
 	union acpi_object *obj;
+	acpi_status status;
 
-	wmi_get_event_data(value, &response);
+	status = wmi_get_event_data(value, &response);
+	if (status != AE_OK) {
+		printk(KERN_INFO "hp-wmi: bad event status 0x%x\n", status);
+		return;
+	}
 
 	obj = (union acpi_object *)response.pointer;
 


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/kernel.spec,v
retrieving revision 1.1791
retrieving revision 1.1792
diff -u -p -r1.1791 -r1.1792
--- kernel.spec	5 Jan 2010 14:57:56 -0000	1.1791
+++ kernel.spec	6 Jan 2010 02:27:06 -0000	1.1792
@@ -639,6 +639,9 @@ Patch304: linux-2.6-usb-uvc-autosuspend.
 Patch305: linux-2.6-fix-btusb-autosuspend.patch
 
 Patch310: linux-2.6-autoload-wmi.patch
+# wmi autoload fixes
+Patch311: wmi-check-find_guid-return-value-to-prevent-oops.patch
+Patch312: wmi-survive-bios-with-duplicate-guids.patch
 
 Patch340: linux-2.6-debug-vm-would-have-oomkilled.patch
 Patch360: linux-2.6-debug-always-inline-kzalloc.patch
@@ -728,9 +731,9 @@ Patch12010: linux-2.6-dell-laptop-rfkill
 Patch12011: linux-2.6-block-silently-error-unsupported-empty-barriers-too.patch
 Patch12013: linux-2.6-rfkill-all.patch
 
-Patch12100: wmi-check-find_guid-return-value-to-prevent-oops.patch
+# Patches for -stable
 Patch12101: wmi-free-the-allocated-acpi-objects.patch
-Patch12102: wmi-survive-bios-with-duplicate-guids.patch
+Patch12102: wmi-check-wmi-get-event-data-return-value.patch
 
 %endif
 
@@ -1212,6 +1215,9 @@ ApplyPatch linux-2.6-fix-btusb-autosuspe
 
 # WMI
 ApplyPatch linux-2.6-autoload-wmi.patch
+# autoload fixes
+ApplyPatch wmi-check-find_guid-return-value-to-prevent-oops.patch
+ApplyPatch wmi-survive-bios-with-duplicate-guids.patch
 
 # ACPI
 ApplyPatch linux-2.6-defaults-acpi-video.patch
@@ -1346,9 +1352,9 @@ ApplyPatch linux-2.6-silence-acpi-blackl
 # Patches headed upstream
 ApplyPatch linux-2.6-rfkill-all.patch
 
-ApplyPatch wmi-check-find_guid-return-value-to-prevent-oops.patch
+# Patches for -stable
 ApplyPatch wmi-free-the-allocated-acpi-objects.patch
-ApplyPatch wmi-survive-bios-with-duplicate-guids.patch
+ApplyPatch wmi-check-wmi-get-event-data-return-value.patch
 
 # END OF PATCH APPLICATIONS
 
@@ -2005,6 +2011,9 @@ fi
 # and build.
 
 %changelog
+* Tue Jan 05 2010 Chuck Ebbert <cebbert at redhat.com>  2.6.32.2-7
+- Another WMI oops fix, also sort out which WMI fixes go upstream.
+
 * Tue Jan 05 2010 Chuck Ebbert <cebbert at redhat.com>  2.6.32.2-6
 - Fix WMI driver oopses and a memory leak.
 

linux-2.6-autoload-wmi.patch:
 wmi.c |  175 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 173 insertions(+), 2 deletions(-)

Index: linux-2.6-autoload-wmi.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/linux-2.6-autoload-wmi.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- linux-2.6-autoload-wmi.patch	5 Jan 2010 16:07:13 -0000	1.2
+++ linux-2.6-autoload-wmi.patch	6 Jan 2010 02:27:06 -0000	1.3
@@ -1,4 +1,10 @@
-[ upstream commit 1caab3c1a90be3aa4ec3599409d8fe044b077478 ]
+From: Matthew Garrett <mjg at redhat.com>
+Date: Wed, 4 Nov 2009 19:17:53 +0000 (-0500)
+Subject: wmi: Add support for module autoloading
+X-Git-Tag: v2.6.33-rc1~47^2~5^2
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=1caab3c1a90be3aa4ec3599409d8fe044b077478
+
+wmi: Add support for module autoloading
 
 WMI provides interface-specific GUIDs that are exported from modules as
 modalises, but the core currently generates no events to trigger module
@@ -8,9 +14,10 @@ and generating the appropriate uevent.
 Based heavily on a patch by Carlos Corbacho (<carlos at strangeworlds.co.uk>).
 
 Signed-off-by: Matthew Garrett <mjg at redhat.com>
+Tested-by: Carlos Corbacho <carlos at strangeworlds.co.uk>
+Acked-by: Carlos Corbacho <carlos at strangeworlds.co.uk>
+Signed-off-by: Len Brown <len.brown at intel.com>
 ---
- drivers/platform/x86/wmi.c |  175 +++++++++++++++++++++++++++++++++++++++++++-
- 1 files changed, 173 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
 index 177f8d7..e425a86 100644
@@ -235,11 +242,3 @@ index 177f8d7..e425a86 100644
  	acpi_bus_unregister_driver(&acpi_wmi_driver);
  
  	list_for_each_safe(p, tmp, &wmi_blocks.list) {
--- 
-1.6.5.2
-
---
-To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
-the body of a message to majordomo at vger.kernel.org
-More majordomo info at  http://vger.kernel.org/majordomo-info.html
-




More information about the fedora-extras-commits mailing list