aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-12-31 12:00:59 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2008-12-31 12:00:59 -0500
commitdb200df0b3530f673d8e9f5bd535e9e10305842a (patch)
tree9a94039b8813452c51a50fcb45e95c32a9f0e537 /arch/x86
parentec270e59a74eee972006a87c8e12514a20588369 (diff)
parent43a256322ac1fc105c181b3cade3b9bfc0b63ca1 (diff)
Merge branch 'irq-fixes-for-linus-4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'irq-fixes-for-linus-4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: sparseirq: move __weak symbols into separate compilation unit sparseirq: work around __weak alias bug sparseirq: fix hang with !SPARSE_IRQ sparseirq: set lock_class for legacy irq when sparse_irq is selected sparseirq: work around compiler optimizing away __weak functions sparseirq: fix desc->lock init sparseirq: do not printk when migrating IRQ descriptors sparseirq: remove duplicated arch_early_irq_init() irq: simplify for_each_irq_desc() usage proc: remove ifdef CONFIG_SPARSE_IRQ from stat.c irq: for_each_irq_desc() move to irqnr.h hrtimer: remove #include <linux/irq.h>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/kernel/io_apic.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/arch/x86/kernel/io_apic.c b/arch/x86/kernel/io_apic.c
index f6ea94b74da1..74917658b004 100644
--- a/arch/x86/kernel/io_apic.c
+++ b/arch/x86/kernel/io_apic.c
@@ -170,7 +170,7 @@ static struct irq_cfg irq_cfgx[NR_IRQS] = {
170 [15] = { .domain = CPU_MASK_ALL, .vector = IRQ15_VECTOR, }, 170 [15] = { .domain = CPU_MASK_ALL, .vector = IRQ15_VECTOR, },
171}; 171};
172 172
173void __init arch_early_irq_init(void) 173int __init arch_early_irq_init(void)
174{ 174{
175 struct irq_cfg *cfg; 175 struct irq_cfg *cfg;
176 struct irq_desc *desc; 176 struct irq_desc *desc;
@@ -184,6 +184,8 @@ void __init arch_early_irq_init(void)
184 desc = irq_to_desc(i); 184 desc = irq_to_desc(i);
185 desc->chip_data = &cfg[i]; 185 desc->chip_data = &cfg[i];
186 } 186 }
187
188 return 0;
187} 189}
188 190
189#ifdef CONFIG_SPARSE_IRQ 191#ifdef CONFIG_SPARSE_IRQ
@@ -212,7 +214,7 @@ static struct irq_cfg *get_one_free_irq_cfg(int cpu)
212 return cfg; 214 return cfg;
213} 215}
214 216
215void arch_init_chip_data(struct irq_desc *desc, int cpu) 217int arch_init_chip_data(struct irq_desc *desc, int cpu)
216{ 218{
217 struct irq_cfg *cfg; 219 struct irq_cfg *cfg;
218 220
@@ -224,6 +226,8 @@ void arch_init_chip_data(struct irq_desc *desc, int cpu)
224 BUG_ON(1); 226 BUG_ON(1);
225 } 227 }
226 } 228 }
229
230 return 0;
227} 231}
228 232
229#ifdef CONFIG_NUMA_MIGRATE_IRQ_DESC 233#ifdef CONFIG_NUMA_MIGRATE_IRQ_DESC
@@ -1345,8 +1349,6 @@ void __setup_vector_irq(int cpu)
1345 1349
1346 /* Mark the inuse vectors */ 1350 /* Mark the inuse vectors */
1347 for_each_irq_desc(irq, desc) { 1351 for_each_irq_desc(irq, desc) {
1348 if (!desc)
1349 continue;
1350 cfg = desc->chip_data; 1352 cfg = desc->chip_data;
1351 if (!cpu_isset(cpu, cfg->domain)) 1353 if (!cpu_isset(cpu, cfg->domain))
1352 continue; 1354 continue;
@@ -1730,8 +1732,6 @@ __apicdebuginit(void) print_IO_APIC(void)
1730 for_each_irq_desc(irq, desc) { 1732 for_each_irq_desc(irq, desc) {
1731 struct irq_pin_list *entry; 1733 struct irq_pin_list *entry;
1732 1734
1733 if (!desc)
1734 continue;
1735 cfg = desc->chip_data; 1735 cfg = desc->chip_data;
1736 entry = cfg->irq_2_pin; 1736 entry = cfg->irq_2_pin;
1737 if (!entry) 1737 if (!entry)
@@ -2378,9 +2378,6 @@ static void ir_irq_migration(struct work_struct *work)
2378 struct irq_desc *desc; 2378 struct irq_desc *desc;
2379 2379
2380 for_each_irq_desc(irq, desc) { 2380 for_each_irq_desc(irq, desc) {
2381 if (!desc)
2382 continue;
2383
2384 if (desc->status & IRQ_MOVE_PENDING) { 2381 if (desc->status & IRQ_MOVE_PENDING) {
2385 unsigned long flags; 2382 unsigned long flags;
2386 2383
@@ -2670,9 +2667,6 @@ static inline void init_IO_APIC_traps(void)
2670 * 0x80, because int 0x80 is hm, kind of importantish. ;) 2667 * 0x80, because int 0x80 is hm, kind of importantish. ;)
2671 */ 2668 */
2672 for_each_irq_desc(irq, desc) { 2669 for_each_irq_desc(irq, desc) {
2673 if (!desc)
2674 continue;
2675
2676 cfg = desc->chip_data; 2670 cfg = desc->chip_data;
2677 if (IO_APIC_IRQ(irq) && cfg && !cfg->vector) { 2671 if (IO_APIC_IRQ(irq) && cfg && !cfg->vector) {
2678 /* 2672 /*