diff options
author | marcel <marcel@FreeBSD.org> | 2007-08-08 01:19:12 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2007-08-08 01:19:12 +0000 |
commit | 8bda20dd9dc350aa77c021ad1d3d75c6c814c2bf (patch) | |
tree | 20f34f8da76828b10bd8c13cd4c92d97a56b5267 /sys/powerpc/aim/interrupt.c | |
parent | e7ff85cfda5b94d5e2b615147588ec5a7f846c3c (diff) | |
download | FreeBSD-src-8bda20dd9dc350aa77c021ad1d3d75c6c814c2bf.zip FreeBSD-src-8bda20dd9dc350aa77c021ad1d3d75c6c814c2bf.tar.gz |
Re-enable external interrupts for faults, traps and syscalls.
Approved by: re (blanket)
Diffstat (limited to 'sys/powerpc/aim/interrupt.c')
-rw-r--r-- | sys/powerpc/aim/interrupt.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/sys/powerpc/aim/interrupt.c b/sys/powerpc/aim/interrupt.c index 4b1a97a..bb27675 100644 --- a/sys/powerpc/aim/interrupt.c +++ b/sys/powerpc/aim/interrupt.c @@ -82,7 +82,8 @@ extern void decr_intr(struct trapframe *); void powerpc_interrupt(struct trapframe *framep) { - struct thread *td; + struct thread *td; + register_t ee; td = curthread; @@ -100,14 +101,12 @@ powerpc_interrupt(struct trapframe *framep) break; default: - /* - * Re-enable interrupts and call the generic trap code - */ -#if 0 - printf("powerpc_interrupt: got trap\n"); - mtmsr(mfmsr() | PSL_EE); - isync(); -#endif + /* Re-enable interrupts if applicable. */ + ee = framep->srr1 & PSL_EE; + if (ee != 0) { + mtmsr(mfmsr() | ee); + isync(); + } trap(framep); } } |