summaryrefslogtreecommitdiffstats
path: root/arch/loongarch/include/asm/smp.h
diff options
context:
space:
mode:
authorHuacai Chen <chenhuacai@loongson.cn>2024-07-20 16:40:58 +0200
committerHuacai Chen <chenhuacai@loongson.cn>2024-07-20 16:40:58 +0200
commit08f417db702c5b05150b3851af7186fee96ddd46 (patch)
tree7268a740e178602b1854e2480a9a8fc1fd602184 /arch/loongarch/include/asm/smp.h
parentLoongArch: Always enumerate MADT and setup logical-physical CPU mapping (diff)
downloadlinux-08f417db702c5b05150b3851af7186fee96ddd46.tar.xz
linux-08f417db702c5b05150b3851af7186fee96ddd46.zip
LoongArch: Add irq_work support via self IPIs
Add irq_work support for LoongArch via self IPIs. This make it possible to run works in hardware interrupt context, which is a prerequisite for NOHZ_FULL. Implement: - arch_irq_work_raise() - arch_irq_work_has_interrupt() Reviewed-by: Guo Ren <guoren@kernel.org> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Diffstat (limited to 'arch/loongarch/include/asm/smp.h')
-rw-r--r--arch/loongarch/include/asm/smp.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/loongarch/include/asm/smp.h b/arch/loongarch/include/asm/smp.h
index 278700cfee88..50db503f44e3 100644
--- a/arch/loongarch/include/asm/smp.h
+++ b/arch/loongarch/include/asm/smp.h
@@ -69,9 +69,11 @@ extern int __cpu_logical_map[NR_CPUS];
#define ACTION_BOOT_CPU 0
#define ACTION_RESCHEDULE 1
#define ACTION_CALL_FUNCTION 2
+#define ACTION_IRQ_WORK 3
#define SMP_BOOT_CPU BIT(ACTION_BOOT_CPU)
#define SMP_RESCHEDULE BIT(ACTION_RESCHEDULE)
#define SMP_CALL_FUNCTION BIT(ACTION_CALL_FUNCTION)
+#define SMP_IRQ_WORK BIT(ACTION_IRQ_WORK)
struct secondary_data {
unsigned long stack;