Pull bugfix into test branch
Len Brown [Wed, 20 Dec 2006 07:52:50 +0000 (02:52 -0500)]
drivers/acpi/Kconfig
drivers/acpi/osl.c
drivers/acpi/pci_root.c
drivers/acpi/processor_core.c

index b0897a0..1639998 100644 (file)
@@ -11,7 +11,7 @@ config ACPI
        bool "ACPI Support"
        depends on IA64 || X86
        depends on PCI
-       select PM
+       depends on PM
        default y
        ---help---
          Advanced Configuration and Power Interface (ACPI) support for 
index b7ca020..57ae1e5 100644 (file)
@@ -1032,7 +1032,7 @@ acpi_status
 acpi_os_create_cache(char *name, u16 size, u16 depth, acpi_cache_t ** cache)
 {
        *cache = kmem_cache_create(name, size, 0, 0, NULL, NULL);
-       if (cache == NULL)
+       if (*cache == NULL)
                return AE_ERROR;
        else
                return AE_OK;
index 03e0374..b9c52cd 100644 (file)
@@ -98,11 +98,12 @@ void acpi_pci_unregister_driver(struct acpi_pci_driver *driver)
 
        struct acpi_pci_driver **pptr = &sub_driver;
        while (*pptr) {
-               if (*pptr != driver)
-                       continue;
-               *pptr = (*pptr)->next;
-               break;
+               if (*pptr == driver)
+                       break;
+               pptr = &(*pptr)->next;
        }
+       BUG_ON(!*pptr);
+       *pptr = (*pptr)->next;
 
        if (!driver->remove)
                return;
index 3e70a08..89b3610 100644 (file)
@@ -901,13 +901,13 @@ static int __init acpi_processor_init(void)
 
        acpi_processor_dir = proc_mkdir(ACPI_PROCESSOR_CLASS, acpi_root_dir);
        if (!acpi_processor_dir)
-               return 0;
+               return -ENOMEM;
        acpi_processor_dir->owner = THIS_MODULE;
 
        result = acpi_bus_register_driver(&acpi_processor_driver);
        if (result < 0) {
                remove_proc_entry(ACPI_PROCESSOR_CLASS, acpi_root_dir);
-               return 0;
+               return result;
        }
 
        acpi_processor_install_hotplug_notify();