Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cab8c6f3 authored by Russell King's avatar Russell King
Browse files

ARM: SMP: move ipi_count into irq_stat structure



Move the ipi_count into irq_stat, which allows the ipi_data structure
to be entirely removed.

Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 46c48f22
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -10,6 +10,9 @@ typedef struct {
#ifdef CONFIG_LOCAL_TIMERS
	unsigned int local_timer_irqs;
#endif
#ifdef CONFIG_SMP
	unsigned int ipi_irqs;
#endif
} ____cacheline_aligned irq_cpustat_t;

#include <linux/irq_cpustat.h>	/* Standard mappings for irq_cpustat_t above */
+2 −12
Original line number Diff line number Diff line
@@ -46,15 +46,6 @@
 */
struct secondary_data secondary_data;

/*
 * structures for inter-processor calls
 */
struct ipi_data {
	unsigned long ipi_count;
};

static DEFINE_PER_CPU(struct ipi_data, ipi_data);

enum ipi_msg_type {
	IPI_TIMER = 2,
	IPI_RESCHEDULE,
@@ -398,7 +389,7 @@ void show_ipi_list(struct seq_file *p)
	seq_puts(p, "IPI:");

	for_each_present_cpu(cpu)
		seq_printf(p, " %10lu", per_cpu(ipi_data, cpu).ipi_count);
		seq_printf(p, " %10u", __get_irq_stat(cpu, ipi_irqs));

	seq_putc(p, '\n');
}
@@ -513,10 +504,9 @@ static void ipi_cpu_stop(unsigned int cpu)
asmlinkage void __exception do_IPI(int ipinr, struct pt_regs *regs)
{
	unsigned int cpu = smp_processor_id();
	struct ipi_data *ipi = &per_cpu(ipi_data, cpu);
	struct pt_regs *old_regs = set_irq_regs(regs);

	ipi->ipi_count++;
	__inc_irq_stat(cpu, ipi_irqs);

	switch (ipinr) {
	case IPI_TIMER: