aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/sibyte/sb1250/irq.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-06-01 15:06:21 -0400
committerIngo Molnar <mingo@elte.hu>2009-06-01 15:06:21 -0400
commit3d58f48ba05caed9118bce62b3047f8683438835 (patch)
tree94c911034f0e14ded73d3e9e6e9f8e22b6cad822 /arch/mips/sibyte/sb1250/irq.c
parentabfe0af9813153bae8c85d9bac966bafcb8ddab1 (diff)
parentd9244b5d2fbfe9fa540024b410047af13ceec90f (diff)
Merge branch 'linus' into irq/numa
Conflicts: arch/mips/sibyte/bcm1480/irq.c arch/mips/sibyte/sb1250/irq.c Merge reason: we gathered a few conflicts plus update to latest upstream fixes. Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/mips/sibyte/sb1250/irq.c')
-rw-r--r--arch/mips/sibyte/sb1250/irq.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/arch/mips/sibyte/sb1250/irq.c b/arch/mips/sibyte/sb1250/irq.c
index e389507f1f96..409dec798863 100644
--- a/arch/mips/sibyte/sb1250/irq.c
+++ b/arch/mips/sibyte/sb1250/irq.c
@@ -107,7 +107,6 @@ static int sb1250_set_affinity(unsigned int irq, const struct cpumask *mask)
107{ 107{
108 int i = 0, old_cpu, cpu, int_on; 108 int i = 0, old_cpu, cpu, int_on;
109 u64 cur_ints; 109 u64 cur_ints;
110 struct irq_desc *desc = irq_desc + irq;
111 unsigned long flags; 110 unsigned long flags;
112 111
113 i = cpumask_first(mask); 112 i = cpumask_first(mask);
@@ -121,8 +120,7 @@ static int sb1250_set_affinity(unsigned int irq, const struct cpumask *mask)
121 cpu = cpu_logical_map(i); 120 cpu = cpu_logical_map(i);
122 121
123 /* Protect against other affinity changers and IMR manipulation */ 122 /* Protect against other affinity changers and IMR manipulation */
124 spin_lock_irqsave(&desc->lock, flags); 123 spin_lock_irqsave(&sb1250_imr_lock, flags);
125 spin_lock(&sb1250_imr_lock);
126 124
127 /* Swizzle each CPU's IMR (but leave the IP selection alone) */ 125 /* Swizzle each CPU's IMR (but leave the IP selection alone) */
128 old_cpu = sb1250_irq_owner[irq]; 126 old_cpu = sb1250_irq_owner[irq];
@@ -144,8 +142,7 @@ static int sb1250_set_affinity(unsigned int irq, const struct cpumask *mask)
144 ____raw_writeq(cur_ints, IOADDR(A_IMR_MAPPER(cpu) + 142 ____raw_writeq(cur_ints, IOADDR(A_IMR_MAPPER(cpu) +
145 R_IMR_INTERRUPT_MASK)); 143 R_IMR_INTERRUPT_MASK));
146 } 144 }
147 spin_unlock(&sb1250_imr_lock); 145 spin_unlock_irqrestore(&sb1250_imr_lock, flags);
148 spin_unlock_irqrestore(&desc->lock, flags);
149 146
150 return 0; 147 return 0;
151} 148}