diff options
| -rw-r--r-- | arch/parisc/include/asm/hardirq.h | 6 | ||||
| -rw-r--r-- | arch/parisc/include/asm/tlbflush.h | 2 | ||||
| -rw-r--r-- | arch/parisc/kernel/irq.c | 5 | ||||
| -rw-r--r-- | arch/parisc/kernel/smp.c | 11 |
4 files changed, 5 insertions, 19 deletions
diff --git a/arch/parisc/include/asm/hardirq.h b/arch/parisc/include/asm/hardirq.h index a9c0fb195253..12373c4dabab 100644 --- a/arch/parisc/include/asm/hardirq.h +++ b/arch/parisc/include/asm/hardirq.h | |||
| @@ -19,12 +19,8 @@ typedef struct { | |||
| 19 | #ifdef CONFIG_SMP | 19 | #ifdef CONFIG_SMP |
| 20 | unsigned int irq_resched_count; | 20 | unsigned int irq_resched_count; |
| 21 | unsigned int irq_call_count; | 21 | unsigned int irq_call_count; |
| 22 | /* | ||
| 23 | * irq_tlb_count is double-counted in irq_call_count, so it must be | ||
| 24 | * subtracted from irq_call_count when displaying irq_call_count | ||
| 25 | */ | ||
| 26 | unsigned int irq_tlb_count; | ||
| 27 | #endif | 22 | #endif |
| 23 | unsigned int irq_tlb_count; | ||
| 28 | } ____cacheline_aligned irq_cpustat_t; | 24 | } ____cacheline_aligned irq_cpustat_t; |
| 29 | 25 | ||
| 30 | DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat); | 26 | DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat); |
diff --git a/arch/parisc/include/asm/tlbflush.h b/arch/parisc/include/asm/tlbflush.h index 8f1a8100bf2d..5273da991e06 100644 --- a/arch/parisc/include/asm/tlbflush.h +++ b/arch/parisc/include/asm/tlbflush.h | |||
| @@ -22,6 +22,8 @@ extern spinlock_t pa_tlb_lock; | |||
| 22 | extern void flush_tlb_all(void); | 22 | extern void flush_tlb_all(void); |
| 23 | extern void flush_tlb_all_local(void *); | 23 | extern void flush_tlb_all_local(void *); |
| 24 | 24 | ||
| 25 | #define smp_flush_tlb_all() flush_tlb_all() | ||
| 26 | |||
| 25 | /* | 27 | /* |
| 26 | * flush_tlb_mm() | 28 | * flush_tlb_mm() |
| 27 | * | 29 | * |
diff --git a/arch/parisc/kernel/irq.c b/arch/parisc/kernel/irq.c index a237e32ede19..e255db0bb761 100644 --- a/arch/parisc/kernel/irq.c +++ b/arch/parisc/kernel/irq.c | |||
| @@ -175,14 +175,13 @@ int arch_show_interrupts(struct seq_file *p, int prec) | |||
| 175 | seq_printf(p, " Rescheduling interrupts\n"); | 175 | seq_printf(p, " Rescheduling interrupts\n"); |
| 176 | seq_printf(p, "%*s: ", prec, "CAL"); | 176 | seq_printf(p, "%*s: ", prec, "CAL"); |
| 177 | for_each_online_cpu(j) | 177 | for_each_online_cpu(j) |
| 178 | seq_printf(p, "%10u ", irq_stats(j)->irq_call_count - | 178 | seq_printf(p, "%10u ", irq_stats(j)->irq_call_count); |
| 179 | irq_stats(j)->irq_tlb_count); | ||
| 180 | seq_printf(p, " Function call interrupts\n"); | 179 | seq_printf(p, " Function call interrupts\n"); |
| 180 | #endif | ||
| 181 | seq_printf(p, "%*s: ", prec, "TLB"); | 181 | seq_printf(p, "%*s: ", prec, "TLB"); |
| 182 | for_each_online_cpu(j) | 182 | for_each_online_cpu(j) |
| 183 | seq_printf(p, "%10u ", irq_stats(j)->irq_tlb_count); | 183 | seq_printf(p, "%10u ", irq_stats(j)->irq_tlb_count); |
| 184 | seq_printf(p, " TLB shootdowns\n"); | 184 | seq_printf(p, " TLB shootdowns\n"); |
| 185 | #endif | ||
| 186 | return 0; | 185 | return 0; |
| 187 | } | 186 | } |
| 188 | 187 | ||
diff --git a/arch/parisc/kernel/smp.c b/arch/parisc/kernel/smp.c index 218e20bff9d2..e3614fb343e5 100644 --- a/arch/parisc/kernel/smp.c +++ b/arch/parisc/kernel/smp.c | |||
| @@ -264,17 +264,6 @@ void arch_send_call_function_single_ipi(int cpu) | |||
| 264 | } | 264 | } |
| 265 | 265 | ||
| 266 | /* | 266 | /* |
| 267 | * Flush all other CPU's tlb and then mine. Do this with on_each_cpu() | ||
| 268 | * as we want to ensure all TLB's flushed before proceeding. | ||
| 269 | */ | ||
| 270 | |||
| 271 | void | ||
| 272 | smp_flush_tlb_all(void) | ||
| 273 | { | ||
| 274 | on_each_cpu(flush_tlb_all_local, NULL, 1); | ||
| 275 | } | ||
| 276 | |||
| 277 | /* | ||
| 278 | * Called by secondaries to update state and initialize CPU registers. | 267 | * Called by secondaries to update state and initialize CPU registers. |
| 279 | */ | 268 | */ |
| 280 | static void __init | 269 | static void __init |
