]> pilppa.com Git - linux-2.6-omap-h63xx.git/commitdiff
[PATCH] x86_64/i386 irq: Fix !CONFIG_SMP compilation
authorEric W. Biederman <ebiederm@xmission.com>
Tue, 27 Feb 2007 07:27:41 +0000 (00:27 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Wed, 28 Feb 2007 16:52:31 +0000 (08:52 -0800)
When removing set_native_irq I missed the fact that it was
called in a couple of places that were compiled even when
SMP support is disabled.  And since the irq_desc[].affinity
field only exists in SMP things broke.

Thanks to Simon Arlott <simon@arlott.org> for spotting this.

There are a couple of ways to fix this but the simplest one
is to just remove the assignments.  The affinity field is only
used to display a value to the user, and nothing on either i386
or x86_64 reads it or depends on it being any particlua value,
so skipping the assignment is safe.  The assignment that
is being removed is just for the initial affinity value before
the user explicitly sets it.  The irq_desc array initializes
this field to CPU_MASK_ALL so the field is initialized to
a reasonable value in the SMP case without being set.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/i386/kernel/io_apic.c
arch/x86_64/kernel/io_apic.c

index 6fec4dab70bb92f5adcd6105f513352cdf4bccf0..e4408ff4e6747224a77a66b5b2f21d02a7992a25 100644 (file)
@@ -1354,7 +1354,6 @@ static void __init setup_IO_APIC_irqs(void)
                }
                spin_lock_irqsave(&ioapic_lock, flags);
                __ioapic_write_entry(apic, pin, entry);
-               irq_desc[irq].affinity = TARGET_CPUS;
                spin_unlock_irqrestore(&ioapic_lock, flags);
        }
        }
@@ -2875,7 +2874,6 @@ int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int a
 
        spin_lock_irqsave(&ioapic_lock, flags);
        __ioapic_write_entry(ioapic, pin, entry);
-       irq_desc[irq].affinity = TARGET_CPUS;
        spin_unlock_irqrestore(&ioapic_lock, flags);
 
        return 0;
index 48593f6b708f0776b6b0e512fac33e2c426c19e8..0a91368f8b604b3b2bd554e42abf219fae4867d9 100644 (file)
@@ -830,10 +830,6 @@ static void setup_IO_APIC_irq(int apic, int pin, unsigned int irq,
                disable_8259A_irq(irq);
 
        ioapic_write_entry(apic, pin, entry);
-
-       spin_lock_irqsave(&ioapic_lock, flags);
-       irq_desc[irq].affinity = TARGET_CPUS;
-       spin_unlock_irqrestore(&ioapic_lock, flags);
 }
 
 static void __init setup_IO_APIC_irqs(void)