Commit f0265ce3 authored by Pete Zaitcev's avatar Pete Zaitcev Committed by David S. Miller

[SPARC]: Keiths SMP patch #1

parent d8475074
...@@ -359,11 +359,11 @@ maybe_smp4m_msg: ...@@ -359,11 +359,11 @@ maybe_smp4m_msg:
andcc %o1, %o4, %g0 andcc %o1, %o4, %g0
be,a smp4m_ticker be,a smp4m_ticker
cmp %l7, 14 cmp %l7, 14
cmp %l7, 13 sethi %hi(0x40000000), %o2
add %o5, %o3, %o5 add %o5, %o3, %o5
bne,a 1f andcc %o1, %o2, %g0
sethi %hi(0x40000000), %o2 be,a 1f
sethi %hi(0x20000000), %o2 sethi %hi(0x20000000), %o2
1: 1:
st %o2, [%o5 + 0x4] st %o2, [%o5 + 0x4]
WRITE_PAUSE WRITE_PAUSE
...@@ -374,7 +374,8 @@ maybe_smp4m_msg: ...@@ -374,7 +374,8 @@ maybe_smp4m_msg:
WRITE_PAUSE WRITE_PAUSE
wr %l4, PSR_ET, %psr wr %l4, PSR_ET, %psr
WRITE_PAUSE WRITE_PAUSE
cmp %l7, 13 srl %o2, (16+14), %o2
tst %o2
bne 2f bne 2f
nop nop
call C_LABEL(smp_reschedule_irq) call C_LABEL(smp_reschedule_irq)
......
...@@ -133,6 +133,16 @@ void __init smp_boot_cpus(void) ...@@ -133,6 +133,16 @@ void __init smp_boot_cpus(void)
smp4d_boot_cpus(); smp4d_boot_cpus();
} }
void smp_send_reschedule(int cpu)
{
smp_message_pass (cpu, MSG_RESCHEDULE, 0, 0);
}
void smp_send_stop(void)
{
smp_message_pass (MSG_ALL_BUT_SELF, MSG_STOP_CPU, 0, 0);
}
void smp_flush_cache_all(void) void smp_flush_cache_all(void)
{ {
xc0((smpfunc_t) BTFIXUP_CALL(local_flush_cache_all)); xc0((smpfunc_t) BTFIXUP_CALL(local_flush_cache_all));
......
...@@ -169,9 +169,6 @@ extern __inline__ int hard_smp_processor_id(void) ...@@ -169,9 +169,6 @@ extern __inline__ int hard_smp_processor_id(void)
#endif #endif
#define smp_processor_id() hard_smp_processor_id() #define smp_processor_id() hard_smp_processor_id()
/* XXX We really need to implement this now. -DaveM */
extern __inline__ void smp_send_reschedule(int cpu) { }
extern __inline__ void smp_send_stop(void) { }
#endif /* !(__ASSEMBLY__) */ #endif /* !(__ASSEMBLY__) */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment