aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorRussell King <rmk@flint.arm.linux.org.uk>2005-01-11 23:37:59 +0000
committerRussell King <rmk@flint.arm.linux.org.uk>2005-01-11 23:37:59 +0000
commit3a7cccbdbd3013f19fad3b8c2acd2af851165137 (patch)
tree69898d254e94c8e33930c5ad9137ec6489e0574c /arch
parent902e60c56b03d5b70df72b2269223eb60e0aeedd (diff)
downloadhistory-3a7cccbdbd3013f19fad3b8c2acd2af851165137.tar.gz
[ARM] Relocate ipi_count into ipi data structures.
This removes ipi_count from the globally visible per-cpu cpu data structure.
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/kernel/smp.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 9c7874cebb43e6..abd3a8133eef4e 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -42,6 +42,7 @@ cpumask_t cpu_online_map;
*/
struct ipi_data {
spinlock_t lock;
+ unsigned long ipi_count;
unsigned long bits;
};
@@ -242,12 +243,12 @@ int smp_call_function(void (*func)(void *info), void *info, int retry,
void show_ipi_list(struct seq_file *p)
{
- int cpu;
+ unsigned int cpu;
- seq_printf(p, "IPI: ");
+ seq_puts(p, "IPI:");
for_each_online_cpu(cpu)
- seq_printf(p, "%10lu ", per_cpu(cpu_data, cpu).ipi_count);
+ seq_printf(p, " %10lu", per_cpu(ipi_data, cpu).ipi_count);
seq_putc(p, '\n');
}
@@ -316,12 +317,11 @@ static void ipi_cpu_stop(unsigned int cpu)
void do_IPI(unsigned int ipimask, struct pt_regs *regs)
{
unsigned int cpu = smp_processor_id();
+ struct ipi_data *ipi = &per_cpu(ipi_data, cpu);
- per_cpu(cpu_data, cpu).ipi_count++;
+ ipi->ipi_count++;
if (ipimask & (1 << 0)) {
- struct ipi_data *ipi = &per_cpu(ipi_data, cpu);
-
for (;;) {
unsigned long msgs;