ata_piix: Add HP Compaq nc6000 to the broken poweroff list
[safe/jmp/linux-2.6] / drivers / acpi / pci_link.c
index b59f59e..16e0f9d 100644 (file)
@@ -86,16 +86,13 @@ struct acpi_pci_link_irq {
 };
 
 struct acpi_pci_link {
-       struct list_head                node;
+       struct list_head                list;
        struct acpi_device              *device;
        struct acpi_pci_link_irq        irq;
        int                             refcnt;
 };
 
-static struct {
-       int                     count;
-       struct list_head        entries;
-} acpi_link;
+static LIST_HEAD(acpi_link_list);
 static DEFINE_MUTEX(acpi_link_lock);
 
 /* --------------------------------------------------------------------------
@@ -179,9 +176,6 @@ static int acpi_pci_link_get_possible(struct acpi_pci_link *link)
 {
        acpi_status status;
 
-       if (!link)
-               return -EINVAL;
-
        status = acpi_walk_resources(link->device->handle, METHOD_NAME__PRS,
                                     acpi_pci_link_check_possible, link);
        if (ACPI_FAILURE(status)) {
@@ -259,9 +253,6 @@ static int acpi_pci_link_get_current(struct acpi_pci_link *link)
        acpi_status status;
        int irq = 0;
 
-       if (!link)
-               return -EINVAL;
-
        link->irq.active = 0;
 
        /* in practice, status disabled is meaningless, ignore it */
@@ -314,7 +305,7 @@ static int acpi_pci_link_set(struct acpi_pci_link *link, int irq)
        } *resource;
        struct acpi_buffer buffer = { 0, NULL };
 
-       if (!link || !irq)
+       if (!irq)
                return -EINVAL;
 
        resource = kzalloc(sizeof(*resource) + 1, irqs_disabled() ? GFP_ATOMIC: GFP_KERNEL);
@@ -485,19 +476,13 @@ static int acpi_irq_penalty[ACPI_MAX_IRQS] = {
 
 int __init acpi_irq_penalty_init(void)
 {
-       struct list_head *node;
        struct acpi_pci_link *link;
        int i;
 
        /*
         * Update penalties to facilitate IRQ balancing.
         */
-       list_for_each(node, &acpi_link.entries) {
-               link = list_entry(node, struct acpi_pci_link, node);
-               if (!link) {
-                       printk(KERN_ERR PREFIX "Invalid link context\n");
-                       continue;
-               }
+       list_for_each_entry(link, &acpi_link_list, list) {
 
                /*
                 * reflect the possible and active irqs in the penalty table --
@@ -712,9 +697,6 @@ static int acpi_pci_link_add(struct acpi_device *device)
        int i;
        int found = 0;
 
-       if (!device)
-               return -EINVAL;
-
        link = kzalloc(sizeof(struct acpi_pci_link), GFP_KERNEL);
        if (!link)
                return -ENOMEM;
@@ -752,9 +734,7 @@ static int acpi_pci_link_add(struct acpi_device *device)
 
        printk("\n");
 
-       /* TBD: Acquire/release lock */
-       list_add_tail(&link->node, &acpi_link.entries);
-       acpi_link.count++;
+       list_add_tail(&link->list, &acpi_link_list);
 
       end:
        /* disable all links -- to be activated on use */
@@ -777,15 +757,9 @@ static int acpi_pci_link_resume(struct acpi_pci_link *link)
 
 static int irqrouter_resume(struct sys_device *dev)
 {
-       struct list_head *node;
        struct acpi_pci_link *link;
 
-       list_for_each(node, &acpi_link.entries) {
-               link = list_entry(node, struct acpi_pci_link, node);
-               if (!link) {
-                       printk(KERN_ERR PREFIX "Invalid link context\n");
-                       continue;
-               }
+       list_for_each_entry(link, &acpi_link_list, list) {
                acpi_pci_link_resume(link);
        }
        return 0;
@@ -795,13 +769,10 @@ static int acpi_pci_link_remove(struct acpi_device *device, int type)
 {
        struct acpi_pci_link *link;
 
-       if (!device || !acpi_driver_data(device))
-               return -EINVAL;
-
        link = acpi_driver_data(device);
 
        mutex_lock(&acpi_link_lock);
-       list_del(&link->node);
+       list_del(&link->list);
        mutex_unlock(&acpi_link_lock);
 
        kfree(link);
@@ -938,9 +909,6 @@ static int __init acpi_pci_link_init(void)
                        acpi_irq_balance = 0;
        }
 
-       acpi_link.count = 0;
-       INIT_LIST_HEAD(&acpi_link.entries);
-
        if (acpi_bus_register_driver(&acpi_pci_link_driver) < 0)
                return -ENODEV;