summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/aim/interrupt.c
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2007-08-08 01:19:12 +0000
committermarcel <marcel@FreeBSD.org>2007-08-08 01:19:12 +0000
commit8bda20dd9dc350aa77c021ad1d3d75c6c814c2bf (patch)
tree20f34f8da76828b10bd8c13cd4c92d97a56b5267 /sys/powerpc/aim/interrupt.c
parente7ff85cfda5b94d5e2b615147588ec5a7f846c3c (diff)
downloadFreeBSD-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.c17
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);
}
}
OpenPOWER on IntegriCloud