aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2007-02-27 02:27:41 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-28 11:52:31 -0500
commit2ff7354fe888f46f6629b57e463b0a1eb956c02b (patch)
tree2bb8b404065fb27141ca1d4fe8a6bc35fe2162bd
parent606135a3081e045b677cde164a296c51f66c4633 (diff)
[PATCH] x86_64/i386 irq: Fix !CONFIG_SMP compilation
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>
-rw-r--r--arch/i386/kernel/io_apic.c2
-rw-r--r--arch/x86_64/kernel/io_apic.c4
2 files changed, 0 insertions, 6 deletions
diff --git a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c
index 6fec4dab70bb..e4408ff4e674 100644
--- a/arch/i386/kernel/io_apic.c
+++ b/arch/i386/kernel/io_apic.c
@@ -1354,7 +1354,6 @@ static void __init setup_IO_APIC_irqs(void)
1354 } 1354 }
1355 spin_lock_irqsave(&ioapic_lock, flags); 1355 spin_lock_irqsave(&ioapic_lock, flags);
1356 __ioapic_write_entry(apic, pin, entry); 1356 __ioapic_write_entry(apic, pin, entry);
1357 irq_desc[irq].affinity = TARGET_CPUS;
1358 spin_unlock_irqrestore(&ioapic_lock, flags); 1357 spin_unlock_irqrestore(&ioapic_lock, flags);
1359 } 1358 }
1360 } 1359 }
@@ -2875,7 +2874,6 @@ int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int a
2875 2874
2876 spin_lock_irqsave(&ioapic_lock, flags); 2875 spin_lock_irqsave(&ioapic_lock, flags);
2877 __ioapic_write_entry(ioapic, pin, entry); 2876 __ioapic_write_entry(ioapic, pin, entry);
2878 irq_desc[irq].affinity = TARGET_CPUS;
2879 spin_unlock_irqrestore(&ioapic_lock, flags); 2877 spin_unlock_irqrestore(&ioapic_lock, flags);
2880 2878
2881 return 0; 2879 return 0;
diff --git a/arch/x86_64/kernel/io_apic.c b/arch/x86_64/kernel/io_apic.c
index 48593f6b708f..0a91368f8b60 100644
--- a/arch/x86_64/kernel/io_apic.c
+++ b/arch/x86_64/kernel/io_apic.c
@@ -830,10 +830,6 @@ static void setup_IO_APIC_irq(int apic, int pin, unsigned int irq,
830 disable_8259A_irq(irq); 830 disable_8259A_irq(irq);
831 831
832 ioapic_write_entry(apic, pin, entry); 832 ioapic_write_entry(apic, pin, entry);
833
834 spin_lock_irqsave(&ioapic_lock, flags);
835 irq_desc[irq].affinity = TARGET_CPUS;
836 spin_unlock_irqrestore(&ioapic_lock, flags);
837} 833}
838 834
839static void __init setup_IO_APIC_irqs(void) 835static void __init setup_IO_APIC_irqs(void)