LoongArch: Export symbol for function smp_send_reschedule()
authorBibo Mao <maobibo@loongson.cn>
Thu, 8 Dec 2022 06:59:15 +0000 (14:59 +0800)
committerHuacai Chen <chenhuacai@loongson.cn>
Thu, 8 Dec 2022 06:59:15 +0000 (14:59 +0800)
Function smp_send_reschedule() is standard kernel API, which is defined
in header file include/linux/smp.h. However, on LoongArch it is defined
as an inline function, this is confusing and kernel modules can not use
this function.

Now we define smp_send_reschedule() as a general function, and add a
EXPORT_SYMBOL_GPL on this function, so that kernel modules can use it.

Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
arch/loongarch/include/asm/smp.h
arch/loongarch/kernel/smp.c

index 3dd172d9ffea0bce5edb52c2d299b94fb901b33a..d82687390b4a726d462a87687b8affe68ba8f38f 100644 (file)
@@ -78,16 +78,6 @@ extern void calculate_cpu_foreign_map(void);
  */
 extern void show_ipi_list(struct seq_file *p, int prec);
 
-/*
- * This function sends a 'reschedule' IPI to another CPU.
- * it goes straight through and wastes no time serializing
- * anything. Worst case is that we lose a reschedule ...
- */
-static inline void smp_send_reschedule(int cpu)
-{
-       loongson_send_ipi_single(cpu, SMP_RESCHEDULE);
-}
-
 static inline void arch_send_call_function_single_ipi(int cpu)
 {
        loongson_send_ipi_single(cpu, SMP_CALL_FUNCTION);
index 6ed72f7ff27894a40848d54c865fefb301bf53ce..14508d429ffa32b4bc6951d2d1d1ad352cd540e8 100644 (file)
@@ -149,6 +149,17 @@ void loongson_send_ipi_mask(const struct cpumask *mask, unsigned int action)
                ipi_write_action(cpu_logical_map(i), (u32)action);
 }
 
+/*
+ * This function sends a 'reschedule' IPI to another CPU.
+ * it goes straight through and wastes no time serializing
+ * anything. Worst case is that we lose a reschedule ...
+ */
+void smp_send_reschedule(int cpu)
+{
+       loongson_send_ipi_single(cpu, SMP_RESCHEDULE);
+}
+EXPORT_SYMBOL_GPL(smp_send_reschedule);
+
 irqreturn_t loongson_ipi_interrupt(int irq, void *dev)
 {
        unsigned int action;