aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2008-05-01 19:15:25 -0400
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2008-05-01 19:15:25 -0400
commit87579c371a7f4e5bf19fa9b472d3ba9d8eafcec1 (patch)
tree098235ad6d7387487c20b2172b50e763481ded2a
parenta0923fbdafb81a1f93da90b19405e7949f4efe2d (diff)
sparc: force resched on IPI
This replicates 1a229e67e4cf08a539fc558d017a95ff03705ac5 for sparc64. This is what happens: smp_send_reschedule() -> smp_receive_signal() (smp.c) ~~> IPI ~~> xcall_receive_signal (ultra.S) ~~> soft interrupt (ttable.S) -> smp_receive_signal_client (smp.c) -> set_tsk_need_resched()
-rw-r--r--arch/sparc64/kernel/smp.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c
index c39944927f..cd2bc7e289 100644
--- a/arch/sparc64/kernel/smp.c
+++ b/arch/sparc64/kernel/smp.c
@@ -1033,6 +1033,7 @@ void smp_receive_signal(int cpu)
1033void smp_receive_signal_client(int irq, struct pt_regs *regs) 1033void smp_receive_signal_client(int irq, struct pt_regs *regs)
1034{ 1034{
1035 clear_softint(1 << irq); 1035 clear_softint(1 << irq);
1036 set_tsk_need_resched(current);
1036} 1037}
1037 1038
1038void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs) 1039void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs)