]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - arch/ia64/kernel/acpi.c
[IA64] Fix the order of atomic operations in restore_previous_kprobes on ia64
[mv-sheeva.git] / arch / ia64 / kernel / acpi.c
index c6ede8780dedc0afdf2489a55b7f9d262ca653d1..00b5d08f6da8d67da2f67c9506d1164e72e7e0a7 100644 (file)
@@ -678,9 +678,11 @@ int __init acpi_boot_init(void)
        /* I/O APIC */
 
        if (acpi_table_parse_madt
-           (ACPI_MADT_TYPE_IO_SAPIC, acpi_parse_iosapic, NR_IOSAPICS) < 1)
-               printk(KERN_ERR PREFIX
-                      "Error parsing MADT - no IOSAPIC entries\n");
+           (ACPI_MADT_TYPE_IO_SAPIC, acpi_parse_iosapic, NR_IOSAPICS) < 1) {
+               if (!ia64_platform_is("sn2"))
+                       printk(KERN_ERR PREFIX
+                              "Error parsing MADT - no IOSAPIC entries\n");
+       }
 
        /* System-Level Interrupt Routing */
 
@@ -741,16 +743,15 @@ int __init acpi_boot_init(void)
 
 int acpi_gsi_to_irq(u32 gsi, unsigned int *irq)
 {
-       int vector;
+       int tmp;
 
        if (has_8259 && gsi < 16)
                *irq = isa_irq_to_vector(gsi);
        else {
-               vector = gsi_to_vector(gsi);
-               if (vector == -1)
+               tmp = gsi_to_irq(gsi);
+               if (tmp == -1)
                        return -1;
-
-               *irq = vector;
+               *irq = tmp;
        }
        return 0;
 }
@@ -859,7 +860,7 @@ int acpi_map_lsapic(acpi_handle handle, int *pcpu)
        lsapic = (struct acpi_madt_local_sapic *)obj->buffer.pointer;
 
        if ((lsapic->header.type != ACPI_MADT_TYPE_LOCAL_SAPIC) ||
-           (!lsapic->lapic_flags & ACPI_MADT_ENABLED)) {
+           (!(lsapic->lapic_flags & ACPI_MADT_ENABLED))) {
                kfree(buffer.pointer);
                return -EINVAL;
        }