diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/mips64/sgi-ip27/ip27-timer.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/mips64/sgi-ip27/ip27-timer.c b/arch/mips64/sgi-ip27/ip27-timer.c index f4cda8c99..d5a1ed058 100644 --- a/arch/mips64/sgi-ip27/ip27-timer.c +++ b/arch/mips64/sgi-ip27/ip27-timer.c @@ -90,15 +90,16 @@ static int set_rtc_mmss(unsigned long nowtime) void rt_timer_interrupt(struct pt_regs *regs) { int cpu = smp_processor_id(); + int cpuA = ((cputoslice(smp_processor_id())) == 0); int user = user_mode(regs); int irq = 7; /* XXX Assign number */ write_lock(&xtime_lock); again: - LOCAL_HUB_S(PI_RT_PEND_A, 0); /* Ack */ + LOCAL_HUB_S(cpuA ? PI_RT_PEND_A : PI_RT_PEND_B, 0); /* Ack */ ct_cur += CYCLES_PER_JIFFY; - LOCAL_HUB_S(PI_RT_COMPARE_A, ct_cur); + LOCAL_HUB_S(cpuA ? PI_RT_COMPARE_A : PI_RT_COMPARE_B, ct_cur); if (LOCAL_HUB_L(PI_RT_COUNT) >= ct_cur) goto again; |