Changes to support SMP:

- don't do the stack overflow sanity check on MP systems -- p->p_addr
will be malloc'ed memory (not K0SEG) and the check will fail.

- don't ignore clock interrupts on secondaries.  Alphas apparently
roundrobin clock interrupts to all cpus, so we're going to take clock
interrupts on all CPUS and not forward them.
This commit is contained in:
Andrew Gallatin 2001-04-17 14:20:33 +00:00
parent ed4835b64d
commit 3706fa1be6

View File

@ -98,11 +98,13 @@ interrupt(a0, a1, a2, framep)
globalp = (struct globaldata *) alpha_pal_rdval();
p = curproc;
atomic_add_int(&p->p_intr_nesting_level, 1);
#ifndef SMP
{
if ((caddr_t) framep < (caddr_t) p->p_addr + 1024) {
panic("possible stack overflow\n");
}
}
#endif
framep->tf_regs[FRAME_TRAPARG_A0] = a0;
framep->tf_regs[FRAME_TRAPARG_A1] = a1;
@ -117,12 +119,6 @@ interrupt(a0, a1, a2, framep)
case ALPHA_INTR_CLOCK: /* clock interrupt */
CTR0(KTR_INTR, "clock interrupt");
if (PCPU_GET(cpuid) != hwrpb->rpb_primary_cpu_id) {
CTR0(KTR_INTR, "ignoring clock on secondary");
atomic_subtract_int(&p->p_intr_nesting_level, 1);
return;
}
alpha_clock_interrupt(framep);
break;