git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'x86-olpc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[pandora-kernel.git]
/
arch
/
x86
/
kernel
/
irq.c
diff --git
a/arch/x86/kernel/irq.c
b/arch/x86/kernel/irq.c
index
83ec017
..
52945da
100644
(file)
--- a/
arch/x86/kernel/irq.c
+++ b/
arch/x86/kernel/irq.c
@@
-4,6
+4,7
@@
#include <linux/cpu.h>
#include <linux/interrupt.h>
#include <linux/kernel_stat.h>
#include <linux/cpu.h>
#include <linux/interrupt.h>
#include <linux/kernel_stat.h>
+#include <linux/of.h>
#include <linux/seq_file.h>
#include <linux/smp.h>
#include <linux/ftrace.h>
#include <linux/seq_file.h>
#include <linux/smp.h>
#include <linux/ftrace.h>
@@
-234,7
+235,7
@@
unsigned int __irq_entry do_IRQ(struct pt_regs *regs)
exit_idle();
irq_enter();
exit_idle();
irq_enter();
- irq = __
get_cpu_var(vector_irq)[vector]
;
+ irq = __
this_cpu_read(vector_irq[vector])
;
if (!handle_irq(irq, regs)) {
ack_APIC_irq();
if (!handle_irq(irq, regs)) {
ack_APIC_irq();
@@
-275,6
+276,15
@@
void smp_x86_platform_ipi(struct pt_regs *regs)
EXPORT_SYMBOL_GPL(vector_used_by_percpu_irq);
EXPORT_SYMBOL_GPL(vector_used_by_percpu_irq);
+#ifdef CONFIG_OF
+unsigned int irq_create_of_mapping(struct device_node *controller,
+ const u32 *intspec, unsigned int intsize)
+{
+ return intspec[0];
+}
+EXPORT_SYMBOL_GPL(irq_create_of_mapping);
+#endif
+
#ifdef CONFIG_HOTPLUG_CPU
/* A cpu has been removed from cpu_online_mask. Reset irq affinities. */
void fixup_irqs(void)
#ifdef CONFIG_HOTPLUG_CPU
/* A cpu has been removed from cpu_online_mask. Reset irq affinities. */
void fixup_irqs(void)
@@
-350,12
+360,12
@@
void fixup_irqs(void)
for (vector = FIRST_EXTERNAL_VECTOR; vector < NR_VECTORS; vector++) {
unsigned int irr;
for (vector = FIRST_EXTERNAL_VECTOR; vector < NR_VECTORS; vector++) {
unsigned int irr;
- if (__
get_cpu_var(vector_irq)[vector]
< 0)
+ if (__
this_cpu_read(vector_irq[vector])
< 0)
continue;
irr = apic_read(APIC_IRR + (vector / 32 * 0x10));
if (irr & (1 << (vector % 32))) {
continue;
irr = apic_read(APIC_IRR + (vector / 32 * 0x10));
if (irr & (1 << (vector % 32))) {
- irq = __
get_cpu_var(vector_irq)[vector]
;
+ irq = __
this_cpu_read(vector_irq[vector])
;
data = irq_get_irq_data(irq);
raw_spin_lock(&desc->lock);
data = irq_get_irq_data(irq);
raw_spin_lock(&desc->lock);