diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-03-26 16:39:17 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-03-27 12:28:43 -0400 |
commit | 6e15cf04860074ad032e88c306bea656bbdd0f22 (patch) | |
tree | c346383bb7563e8d66b2f4a502f875b259c34870 /arch/mips | |
parent | be0ea69674ed95e1e98cb3687a241badc756d228 (diff) | |
parent | 60db56422043aaa455ac7f858ce23c273220f9d9 (diff) |
Merge branch 'core/percpu' into percpu-cpumask-x86-for-linus-2
Conflicts:
arch/parisc/kernel/irq.c
arch/x86/include/asm/fixmap_64.h
arch/x86/include/asm/setup.h
kernel/irq/handle.c
Semantic merge:
arch/x86/include/asm/fixmap.h
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/mips')
-rw-r--r-- | arch/mips/include/asm/irq.h | 2 | ||||
-rw-r--r-- | arch/mips/kernel/irq-gic.c | 2 | ||||
-rw-r--r-- | arch/mips/kernel/smtc.c | 6 | ||||
-rw-r--r-- | arch/mips/mti-malta/malta-smtc.c | 5 | ||||
-rw-r--r-- | arch/mips/sgi-ip22/ip22-int.c | 2 | ||||
-rw-r--r-- | arch/mips/sgi-ip22/ip22-time.c | 2 | ||||
-rw-r--r-- | arch/mips/sibyte/bcm1480/smp.c | 3 | ||||
-rw-r--r-- | arch/mips/sibyte/sb1250/smp.c | 3 |
8 files changed, 15 insertions, 10 deletions
diff --git a/arch/mips/include/asm/irq.h b/arch/mips/include/asm/irq.h index abc62aa744ac..3214ade02d10 100644 --- a/arch/mips/include/asm/irq.h +++ b/arch/mips/include/asm/irq.h | |||
@@ -66,7 +66,7 @@ extern void smtc_forward_irq(unsigned int irq); | |||
66 | */ | 66 | */ |
67 | #define IRQ_AFFINITY_HOOK(irq) \ | 67 | #define IRQ_AFFINITY_HOOK(irq) \ |
68 | do { \ | 68 | do { \ |
69 | if (!cpu_isset(smp_processor_id(), irq_desc[irq].affinity)) { \ | 69 | if (!cpumask_test_cpu(smp_processor_id(), irq_desc[irq].affinity)) {\ |
70 | smtc_forward_irq(irq); \ | 70 | smtc_forward_irq(irq); \ |
71 | irq_exit(); \ | 71 | irq_exit(); \ |
72 | return; \ | 72 | return; \ |
diff --git a/arch/mips/kernel/irq-gic.c b/arch/mips/kernel/irq-gic.c index 494a49a317e9..87deb8f6c458 100644 --- a/arch/mips/kernel/irq-gic.c +++ b/arch/mips/kernel/irq-gic.c | |||
@@ -187,7 +187,7 @@ static void gic_set_affinity(unsigned int irq, const struct cpumask *cpumask) | |||
187 | set_bit(irq, pcpu_masks[first_cpu(tmp)].pcpu_mask); | 187 | set_bit(irq, pcpu_masks[first_cpu(tmp)].pcpu_mask); |
188 | 188 | ||
189 | } | 189 | } |
190 | irq_desc[irq].affinity = *cpumask; | 190 | cpumask_copy(irq_desc[irq].affinity, cpumask); |
191 | spin_unlock_irqrestore(&gic_lock, flags); | 191 | spin_unlock_irqrestore(&gic_lock, flags); |
192 | 192 | ||
193 | } | 193 | } |
diff --git a/arch/mips/kernel/smtc.c b/arch/mips/kernel/smtc.c index b6cca01ff82b..5f5af7d4c890 100644 --- a/arch/mips/kernel/smtc.c +++ b/arch/mips/kernel/smtc.c | |||
@@ -686,7 +686,7 @@ void smtc_forward_irq(unsigned int irq) | |||
686 | * and efficiency, we just pick the easiest one to find. | 686 | * and efficiency, we just pick the easiest one to find. |
687 | */ | 687 | */ |
688 | 688 | ||
689 | target = first_cpu(irq_desc[irq].affinity); | 689 | target = cpumask_first(irq_desc[irq].affinity); |
690 | 690 | ||
691 | /* | 691 | /* |
692 | * We depend on the platform code to have correctly processed | 692 | * We depend on the platform code to have correctly processed |
@@ -921,11 +921,13 @@ void ipi_decode(struct smtc_ipi *pipi) | |||
921 | struct clock_event_device *cd; | 921 | struct clock_event_device *cd; |
922 | void *arg_copy = pipi->arg; | 922 | void *arg_copy = pipi->arg; |
923 | int type_copy = pipi->type; | 923 | int type_copy = pipi->type; |
924 | int irq = MIPS_CPU_IRQ_BASE + 1; | ||
925 | |||
924 | smtc_ipi_nq(&freeIPIq, pipi); | 926 | smtc_ipi_nq(&freeIPIq, pipi); |
925 | switch (type_copy) { | 927 | switch (type_copy) { |
926 | case SMTC_CLOCK_TICK: | 928 | case SMTC_CLOCK_TICK: |
927 | irq_enter(); | 929 | irq_enter(); |
928 | kstat_this_cpu.irqs[MIPS_CPU_IRQ_BASE + 1]++; | 930 | kstat_incr_irqs_this_cpu(irq, irq_to_desc(irq)); |
929 | cd = &per_cpu(mips_clockevent_device, cpu); | 931 | cd = &per_cpu(mips_clockevent_device, cpu); |
930 | cd->event_handler(cd); | 932 | cd->event_handler(cd); |
931 | irq_exit(); | 933 | irq_exit(); |
diff --git a/arch/mips/mti-malta/malta-smtc.c b/arch/mips/mti-malta/malta-smtc.c index aabd7274507b..5ba31888fefb 100644 --- a/arch/mips/mti-malta/malta-smtc.c +++ b/arch/mips/mti-malta/malta-smtc.c | |||
@@ -116,7 +116,7 @@ struct plat_smp_ops msmtc_smp_ops = { | |||
116 | 116 | ||
117 | void plat_set_irq_affinity(unsigned int irq, const struct cpumask *affinity) | 117 | void plat_set_irq_affinity(unsigned int irq, const struct cpumask *affinity) |
118 | { | 118 | { |
119 | cpumask_t tmask = *affinity; | 119 | cpumask_t tmask; |
120 | int cpu = 0; | 120 | int cpu = 0; |
121 | void smtc_set_irq_affinity(unsigned int irq, cpumask_t aff); | 121 | void smtc_set_irq_affinity(unsigned int irq, cpumask_t aff); |
122 | 122 | ||
@@ -139,11 +139,12 @@ void plat_set_irq_affinity(unsigned int irq, const struct cpumask *affinity) | |||
139 | * be made to forward to an offline "CPU". | 139 | * be made to forward to an offline "CPU". |
140 | */ | 140 | */ |
141 | 141 | ||
142 | cpumask_copy(&tmask, affinity); | ||
142 | for_each_cpu(cpu, affinity) { | 143 | for_each_cpu(cpu, affinity) { |
143 | if ((cpu_data[cpu].vpe_id != 0) || !cpu_online(cpu)) | 144 | if ((cpu_data[cpu].vpe_id != 0) || !cpu_online(cpu)) |
144 | cpu_clear(cpu, tmask); | 145 | cpu_clear(cpu, tmask); |
145 | } | 146 | } |
146 | irq_desc[irq].affinity = tmask; | 147 | cpumask_copy(irq_desc[irq].affinity, &tmask); |
147 | 148 | ||
148 | if (cpus_empty(tmask)) | 149 | if (cpus_empty(tmask)) |
149 | /* | 150 | /* |
diff --git a/arch/mips/sgi-ip22/ip22-int.c b/arch/mips/sgi-ip22/ip22-int.c index f8b18af141a1..0ecd5fe9486e 100644 --- a/arch/mips/sgi-ip22/ip22-int.c +++ b/arch/mips/sgi-ip22/ip22-int.c | |||
@@ -155,7 +155,7 @@ static void indy_buserror_irq(void) | |||
155 | int irq = SGI_BUSERR_IRQ; | 155 | int irq = SGI_BUSERR_IRQ; |
156 | 156 | ||
157 | irq_enter(); | 157 | irq_enter(); |
158 | kstat_this_cpu.irqs[irq]++; | 158 | kstat_incr_irqs_this_cpu(irq, irq_to_desc(irq)); |
159 | ip22_be_interrupt(irq); | 159 | ip22_be_interrupt(irq); |
160 | irq_exit(); | 160 | irq_exit(); |
161 | } | 161 | } |
diff --git a/arch/mips/sgi-ip22/ip22-time.c b/arch/mips/sgi-ip22/ip22-time.c index 3dcb27ec0c53..c8f7d2328b24 100644 --- a/arch/mips/sgi-ip22/ip22-time.c +++ b/arch/mips/sgi-ip22/ip22-time.c | |||
@@ -122,7 +122,7 @@ void indy_8254timer_irq(void) | |||
122 | char c; | 122 | char c; |
123 | 123 | ||
124 | irq_enter(); | 124 | irq_enter(); |
125 | kstat_this_cpu.irqs[irq]++; | 125 | kstat_incr_irqs_this_cpu(irq, irq_to_desc(irq)); |
126 | printk(KERN_ALERT "Oops, got 8254 interrupt.\n"); | 126 | printk(KERN_ALERT "Oops, got 8254 interrupt.\n"); |
127 | ArcRead(0, &c, 1, &cnt); | 127 | ArcRead(0, &c, 1, &cnt); |
128 | ArcEnterInteractiveMode(); | 128 | ArcEnterInteractiveMode(); |
diff --git a/arch/mips/sibyte/bcm1480/smp.c b/arch/mips/sibyte/bcm1480/smp.c index dddfda8e8294..314691648c97 100644 --- a/arch/mips/sibyte/bcm1480/smp.c +++ b/arch/mips/sibyte/bcm1480/smp.c | |||
@@ -178,9 +178,10 @@ struct plat_smp_ops bcm1480_smp_ops = { | |||
178 | void bcm1480_mailbox_interrupt(void) | 178 | void bcm1480_mailbox_interrupt(void) |
179 | { | 179 | { |
180 | int cpu = smp_processor_id(); | 180 | int cpu = smp_processor_id(); |
181 | int irq = K_BCM1480_INT_MBOX_0_0; | ||
181 | unsigned int action; | 182 | unsigned int action; |
182 | 183 | ||
183 | kstat_this_cpu.irqs[K_BCM1480_INT_MBOX_0_0]++; | 184 | kstat_incr_irqs_this_cpu(irq, irq_to_desc(irq)); |
184 | /* Load the mailbox register to figure out what we're supposed to do */ | 185 | /* Load the mailbox register to figure out what we're supposed to do */ |
185 | action = (__raw_readq(mailbox_0_regs[cpu]) >> 48) & 0xffff; | 186 | action = (__raw_readq(mailbox_0_regs[cpu]) >> 48) & 0xffff; |
186 | 187 | ||
diff --git a/arch/mips/sibyte/sb1250/smp.c b/arch/mips/sibyte/sb1250/smp.c index 5950a288a7da..cad14003b84f 100644 --- a/arch/mips/sibyte/sb1250/smp.c +++ b/arch/mips/sibyte/sb1250/smp.c | |||
@@ -166,9 +166,10 @@ struct plat_smp_ops sb_smp_ops = { | |||
166 | void sb1250_mailbox_interrupt(void) | 166 | void sb1250_mailbox_interrupt(void) |
167 | { | 167 | { |
168 | int cpu = smp_processor_id(); | 168 | int cpu = smp_processor_id(); |
169 | int irq = K_INT_MBOX_0; | ||
169 | unsigned int action; | 170 | unsigned int action; |
170 | 171 | ||
171 | kstat_this_cpu.irqs[K_INT_MBOX_0]++; | 172 | kstat_incr_irqs_this_cpu(irq, irq_to_desc(irq)); |
172 | /* Load the mailbox register to figure out what we're supposed to do */ | 173 | /* Load the mailbox register to figure out what we're supposed to do */ |
173 | action = (____raw_readq(mailbox_regs[cpu]) >> 48) & 0xffff; | 174 | action = (____raw_readq(mailbox_regs[cpu]) >> 48) & 0xffff; |
174 | 175 | ||