Message ID | 20210928182139.652896-2-f.fainelli@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Modular Broadcom irqchip drivers | expand |
On Tue, Sep 28, 2021 at 11:21:26AM -0700, Florian Fainelli wrote: > irq_cpu_offline() is only used by MIPS and we should instead use > irq_migrate_all_off_this_cpu(). This will be helpful in order to remove > drivers/irqchip/irq-bcm7038-l1.c irq_cpu_offline callback which would > have got in the way of making this driver modular. > > Suggested-by: Thomas Gleixner <tglx@linutronix.de> > Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> > --- > arch/mips/Kconfig | 1 + > arch/mips/kernel/smp-bmips.c | 3 ++- > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig > index 771ca53af06d..2c03b27cec02 100644 > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > @@ -1782,6 +1782,7 @@ config CPU_BMIPS > select CPU_HAS_PREFETCH > select CPU_SUPPORTS_CPUFREQ > select MIPS_EXTERNAL_TIMER > + select GENERIC_IRQ_MIGRATION if HOTPLUG_CPU > help > Support for BMIPS32/3300/4350/4380 and BMIPS5000 processors. > > diff --git a/arch/mips/kernel/smp-bmips.c b/arch/mips/kernel/smp-bmips.c > index b6ef5f7312cf..f5d7bfa3472a 100644 > --- a/arch/mips/kernel/smp-bmips.c > +++ b/arch/mips/kernel/smp-bmips.c > @@ -26,6 +26,7 @@ > #include <linux/bug.h> > #include <linux/kernel.h> > #include <linux/kexec.h> > +#include <linux/irq.h> > > #include <asm/time.h> > #include <asm/processor.h> > @@ -373,7 +374,7 @@ static int bmips_cpu_disable(void) > > set_cpu_online(cpu, false); > calculate_cpu_foreign_map(); > - irq_cpu_offline(); > + irq_migrate_all_off_this_cpu(); > clear_c0_status(IE_IRQ5); > > local_flush_tlb_all(); Acked-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 771ca53af06d..2c03b27cec02 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -1782,6 +1782,7 @@ config CPU_BMIPS select CPU_HAS_PREFETCH select CPU_SUPPORTS_CPUFREQ select MIPS_EXTERNAL_TIMER + select GENERIC_IRQ_MIGRATION if HOTPLUG_CPU help Support for BMIPS32/3300/4350/4380 and BMIPS5000 processors. diff --git a/arch/mips/kernel/smp-bmips.c b/arch/mips/kernel/smp-bmips.c index b6ef5f7312cf..f5d7bfa3472a 100644 --- a/arch/mips/kernel/smp-bmips.c +++ b/arch/mips/kernel/smp-bmips.c @@ -26,6 +26,7 @@ #include <linux/bug.h> #include <linux/kernel.h> #include <linux/kexec.h> +#include <linux/irq.h> #include <asm/time.h> #include <asm/processor.h> @@ -373,7 +374,7 @@ static int bmips_cpu_disable(void) set_cpu_online(cpu, false); calculate_cpu_foreign_map(); - irq_cpu_offline(); + irq_migrate_all_off_this_cpu(); clear_c0_status(IE_IRQ5); local_flush_tlb_all();
irq_cpu_offline() is only used by MIPS and we should instead use irq_migrate_all_off_this_cpu(). This will be helpful in order to remove drivers/irqchip/irq-bcm7038-l1.c irq_cpu_offline callback which would have got in the way of making this driver modular. Suggested-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> --- arch/mips/Kconfig | 1 + arch/mips/kernel/smp-bmips.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-)