Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1a36265b authored by Kirill Tkhai's avatar Kirill Tkhai Committed by David S. Miller
Browse files

sparc64: Add self-IPI support for smp_send_reschedule()



CONFIG_NO_HZ_FULL requires possibility of smp_send_reschedule()
for the calling CPU. Currently, it is used in inc_nr_running()
scheduler primitive only.

Nobody calls smp_send_reschedule() from preemptible context
(furthermore, it looks like it will be save if anybody use it
another way in the future). But anyway I add WARN_ON() here
just to return here if anything changes.

Signed-off-by: default avatarKirill Tkhai <tkhai@yandex.ru>
CC: David Miller <davem@davemloft.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 557fc587
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -1399,8 +1399,13 @@ void __init smp_cpus_done(unsigned int max_cpus)

void smp_send_reschedule(int cpu)
{
	xcall_deliver((u64) &xcall_receive_signal, 0, 0,
		      cpumask_of(cpu));
	if (cpu == smp_processor_id()) {
		WARN_ON_ONCE(preemptible());
		set_softint(1 << PIL_SMP_RECEIVE_SIGNAL);
	} else {
		xcall_deliver((u64) &xcall_receive_signal,
			      0, 0, cpumask_of(cpu));
	}
}

void __irq_entry smp_receive_signal_client(int irq, struct pt_regs *regs)