ACPI: replace AE_BAD_ADDRESS exception code with AE_ERROR
[safe/jmp/linux-2.6] / drivers / misc / acer-wmi.c
index b2d9878..a67aef5 100644 (file)
@@ -192,6 +192,9 @@ static struct quirk_entry *quirks;
 
 static void set_quirks(void)
 {
+       if (!interface)
+               return;
+
        if (quirks->mailled)
                interface->capability |= ACER_CAP_MAILLED;
 
@@ -473,7 +476,7 @@ struct wmi_interface *iface)
                }
                break;
        default:
-               return AE_BAD_ADDRESS;
+               return AE_ERROR;
        }
        return AE_OK;
 }
@@ -511,7 +514,7 @@ static acpi_status AMW0_set_u32(u32 value, u32 cap, struct wmi_interface *iface)
                        break;
                }
        default:
-               return AE_BAD_ADDRESS;
+               return AE_ERROR;
        }
 
        /* Actually do the set */
@@ -686,7 +689,7 @@ struct wmi_interface *iface)
                        return 0;
                }
        default:
-               return AE_BAD_ADDRESS;
+               return AE_ERROR;
        }
        status = WMI_execute_u32(method_id, 0, &result);
 
@@ -732,7 +735,7 @@ static acpi_status WMID_set_u32(u32 value, u32 cap, struct wmi_interface *iface)
                }
                break;
        default:
-               return AE_BAD_ADDRESS;
+               return AE_ERROR;
        }
        return WMI_execute_u32(method_id, (u32)value, NULL);
 }
@@ -782,7 +785,7 @@ static struct wmi_interface wmid_interface = {
 
 static acpi_status get_u32(u32 *value, u32 cap)
 {
-       acpi_status status = AE_BAD_ADDRESS;
+       acpi_status status = AE_ERROR;
 
        switch (interface->type) {
        case ACER_AMW0:
@@ -1186,7 +1189,7 @@ static int create_debugfs(void)
        return 0;
 
 error_debugfs:
-               remove_debugfs();
+       remove_debugfs();
        return -ENOMEM;
 }
 
@@ -1237,6 +1240,8 @@ static int __init acer_wmi_init(void)
                return -ENODEV;
        }
 
+       set_quirks();
+
        if (platform_driver_register(&acer_platform_driver)) {
                printk(ACER_ERR "Unable to register platform driver.\n");
                goto error_platform_register;
@@ -1267,6 +1272,7 @@ error_platform_register:
 static void __exit acer_wmi_exit(void)
 {
        remove_sysfs(acer_platform_device);
+       remove_debugfs();
        platform_device_del(acer_platform_device);
        platform_driver_unregister(&acer_platform_driver);