Messages in this thread Patch in this message | | | From | alvinzhan1234@gmail ... | Subject | [PATCH 1/1] arm64: Prevent offline CPU handling IRQs. | Date | Wed, 13 Jul 2022 21:28:43 +0800 |
| |
From: Alvin Zhan <alvinzhan1234@gmail.com>
Migrate all of the IRQs on this CPU after setting it offline may still cause the IRQs to be dispatched to this CPU. To prevent offline CPU handling IRQs, we should migrate the IRQs away from this CPU before it is powered off.
Signed-off-by: Alvin Zhan <alvinzhan1234@gmail.com> --- arch/arm64/kernel/smp.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c index 62ed361a4..c4c3c5ed5 100644 --- a/arch/arm64/kernel/smp.c +++ b/arch/arm64/kernel/smp.c @@ -302,6 +302,11 @@ int __cpu_disable(void) remove_cpu_topology(cpu); numa_remove_cpu(cpu); + /* + * Migrate IRQs away from this CPU first. + */ + irq_migrate_all_off_this_cpu(); + /* * Take this CPU offline. Once we clear this, we can't return, * and we must not schedule until we're ready to give up the cpu. @@ -309,11 +314,6 @@ int __cpu_disable(void) set_cpu_online(cpu, false); ipi_teardown(cpu); - /* - * OK - migrate IRQs away from this CPU - */ - irq_migrate_all_off_this_cpu(); - return 0; } -- 2.34.1
| |