Commit b61e10dd authored by Bibo Mao's avatar Bibo Mao Committed by Hongchen Zhang
Browse files

LoongArch: Export symbol for function smp_send_reschedule()

mainline inclusion
from mainline-v6.1
commit 143d64bd
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I6BWFP


CVE: NA

--------------------------------

From upstream commit 143d64bd

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: default avatarBibo Mao <maobibo@loongson.cn>
Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
Change-Id: Iafc643ec9282b60ad211f86d66804f30f9932304
parent 622f37d3
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -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)
{
	loongson3_send_ipi_single(cpu, SMP_RESCHEDULE);
}

static inline void arch_send_call_function_single_ipi(int cpu)
{
	loongson3_send_ipi_single(cpu, SMP_CALL_FUNCTION);
+11 −0
Original line number Diff line number Diff line
@@ -151,6 +151,17 @@ void loongson3_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)
{
	loongson3_send_ipi_single(cpu, SMP_RESCHEDULE);
}
EXPORT_SYMBOL_GPL(smp_send_reschedule);

irqreturn_t loongson3_ipi_interrupt(int irq, void *dev)
{
	unsigned int action;