diff mbox series

[v3,01/14] MIPS: BMIPS: Remove use of irq_cpu_offline

Message ID 20210928182139.652896-2-f.fainelli@gmail.com (mailing list archive)
State Superseded
Headers show
Series Modular Broadcom irqchip drivers | expand

Commit Message

Florian Fainelli Sept. 28, 2021, 6:21 p.m. UTC
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(-)

Comments

Thomas Bogendoerfer Oct. 3, 2021, 4:09 p.m. UTC | #1
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 mbox series

Patch

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();