projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' into gfs2
[powerpc.git]
/
arch
/
x86_64
/
kernel
/
irq.c
diff --git
a/arch/x86_64/kernel/irq.c
b/arch/x86_64/kernel/irq.c
index
bfa82f5
..
b3677e6
100644
(file)
--- a/
arch/x86_64/kernel/irq.c
+++ b/
arch/x86_64/kernel/irq.c
@@
-20,11
+20,6
@@
#include <asm/idle.h>
atomic_t irq_err_count;
#include <asm/idle.h>
atomic_t irq_err_count;
-#ifdef CONFIG_X86_IO_APIC
-#ifdef APIC_MISMATCH_DEBUG
-atomic_t irq_mis_count;
-#endif
-#endif
#ifdef CONFIG_DEBUG_STACKOVERFLOW
/*
#ifdef CONFIG_DEBUG_STACKOVERFLOW
/*
@@
-79,7
+74,7
@@
int show_interrupts(struct seq_file *p, void *v)
for_each_online_cpu(j)
seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]);
#endif
for_each_online_cpu(j)
seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]);
#endif
- seq_printf(p, " %14s", irq_desc[i].
handler
->typename);
+ seq_printf(p, " %14s", irq_desc[i].
chip
->typename);
seq_printf(p, " %s", action->name);
for (action=action->next; action; action = action->next)
seq_printf(p, " %s", action->name);
for (action=action->next; action; action = action->next)
@@
-92,18
+87,11
@@
skip:
for_each_online_cpu(j)
seq_printf(p, "%10u ", cpu_pda(j)->__nmi_count);
seq_putc(p, '\n');
for_each_online_cpu(j)
seq_printf(p, "%10u ", cpu_pda(j)->__nmi_count);
seq_putc(p, '\n');
-#ifdef CONFIG_X86_LOCAL_APIC
seq_printf(p, "LOC: ");
for_each_online_cpu(j)
seq_printf(p, "%10u ", cpu_pda(j)->apic_timer_irqs);
seq_putc(p, '\n');
seq_printf(p, "LOC: ");
for_each_online_cpu(j)
seq_printf(p, "%10u ", cpu_pda(j)->apic_timer_irqs);
seq_putc(p, '\n');
-#endif
seq_printf(p, "ERR: %10u\n", atomic_read(&irq_err_count));
seq_printf(p, "ERR: %10u\n", atomic_read(&irq_err_count));
-#ifdef CONFIG_X86_IO_APIC
-#ifdef APIC_MISMATCH_DEBUG
- seq_printf(p, "MIS: %10u\n", atomic_read(&irq_mis_count));
-#endif
-#endif
}
return 0;
}
}
return 0;
}
@@
-146,13
+134,13
@@
void fixup_irqs(cpumask_t map)
if (irq == 2)
continue;
if (irq == 2)
continue;
- cpus_and(mask, irq_
affinity[irq]
, map);
+ cpus_and(mask, irq_
desc[irq].affinity
, map);
if (any_online_cpu(mask) == NR_CPUS) {
printk("Breaking affinity for irq %i\n", irq);
mask = map;
}
if (any_online_cpu(mask) == NR_CPUS) {
printk("Breaking affinity for irq %i\n", irq);
mask = map;
}
- if (irq_desc[irq].
handler
->set_affinity)
- irq_desc[irq].
handler
->set_affinity(irq, mask);
+ if (irq_desc[irq].
chip
->set_affinity)
+ irq_desc[irq].
chip
->set_affinity(irq, mask);
else if (irq_desc[irq].action && !(warned++))
printk("Cannot set affinity for irq %i\n", irq);
}
else if (irq_desc[irq].action && !(warned++))
printk("Cannot set affinity for irq %i\n", irq);
}
@@
-177,8
+165,10
@@
asmlinkage void do_softirq(void)
local_irq_save(flags);
pending = local_softirq_pending();
/* Switch to interrupt stack */
local_irq_save(flags);
pending = local_softirq_pending();
/* Switch to interrupt stack */
- if (pending)
+ if (pending)
{
call_softirq();
call_softirq();
+ WARN_ON_ONCE(softirq_count());
+ }
local_irq_restore(flags);
}
EXPORT_SYMBOL(do_softirq);
local_irq_restore(flags);
}
EXPORT_SYMBOL(do_softirq);