ACPI: Don't treat generic error as ACPI error code in acpi memory hotplug driver
Zhao Yakui [Fri, 3 Jul 2009 02:49:03 +0000 (10:49 +0800)]
Don't treat the generic error as ACPI error code. Otherwise when the generic
code is returned, it will complain the following warning messag:
   >ACPI Exception (acpi_memhotplug-0171): UNKNOWN_STATUS_CODE,
Cannot get acpi bus device [20080609]
   >ACPI: Cannot find driver data
   > ACPI Error (utglobal-0127): Unknown exception code: 0xFFFFFFED [20080609]
   > Pid: 85, comm: kacpi_notify Not tainted 2.6.27.19-5-default #1
     Call Trace:
     [<ffffffff8020da29>] show_trace_log_lvl+0x41/0x58
     [<ffffffff8049a3da>] dump_stack+0x69/0x6f
    .....

At the same time when the generic error code is returned, the ACPI_EXCEPTION
is replaced by the printk.

Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>

drivers/acpi/acpi_memhotplug.c

index 7a0f4aa..37cbe72 100644 (file)
@@ -38,6 +38,9 @@
 
 #define _COMPONENT             ACPI_MEMORY_DEVICE_COMPONENT
 
+#undef PREFIX
+#define        PREFIX          "ACPI:memory_hp:"
+
 ACPI_MODULE_NAME("acpi_memhotplug");
 MODULE_AUTHOR("Naveen B S <naveen.b.s@intel.com>");
 MODULE_DESCRIPTION("Hotplug Mem Driver");
@@ -153,6 +156,7 @@ acpi_memory_get_device(acpi_handle handle,
        acpi_handle phandle;
        struct acpi_device *device = NULL;
        struct acpi_device *pdevice = NULL;
+       int result;
 
 
        if (!acpi_bus_get_device(handle, &device) && device)
@@ -165,9 +169,9 @@ acpi_memory_get_device(acpi_handle handle,
        }
 
        /* Get the parent device */
-       status = acpi_bus_get_device(phandle, &pdevice);
-       if (ACPI_FAILURE(status)) {
-               ACPI_EXCEPTION((AE_INFO, status, "Cannot get acpi bus device"));
+       result = acpi_bus_get_device(phandle, &pdevice);
+       if (result) {
+               printk(KERN_WARNING PREFIX "Cannot get acpi bus device");
                return -EINVAL;
        }
 
@@ -175,9 +179,9 @@ acpi_memory_get_device(acpi_handle handle,
         * Now add the notified device.  This creates the acpi_device
         * and invokes .add function
         */
-       status = acpi_bus_add(&device, pdevice, handle, ACPI_BUS_TYPE_DEVICE);
-       if (ACPI_FAILURE(status)) {
-               ACPI_EXCEPTION((AE_INFO, status, "Cannot add acpi bus"));
+       result = acpi_bus_add(&device, pdevice, handle, ACPI_BUS_TYPE_DEVICE);
+       if (result) {
+               printk(KERN_WARNING PREFIX "Cannot add acpi bus");
                return -EINVAL;
        }