summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/aim
diff options
context:
space:
mode:
authornwhitehorn <nwhitehorn@FreeBSD.org>2009-04-11 20:43:41 +0000
committernwhitehorn <nwhitehorn@FreeBSD.org>2009-04-11 20:43:41 +0000
commit8a26716497aadc804f1ff89823e32608cf01ee24 (patch)
treee4e3f354aabe215e2eb44052204161813c892ca7 /sys/powerpc/aim
parentcae135c4892f809b3e59f64a6973447bcd1fc8e3 (diff)
downloadFreeBSD-src-8a26716497aadc804f1ff89823e32608cf01ee24.zip
FreeBSD-src-8a26716497aadc804f1ff89823e32608cf01ee24.tar.gz
Fix recognition of kernel-mode traps that pass through the KDB trap handler
but do not actually invoke KDB. This includes recoverable machine checks encountered in kernel mode. This patch causes machines with Grackle host-PCI bridges to be able to correctly enumerate them again. MFC after: 3 days
Diffstat (limited to 'sys/powerpc/aim')
-rw-r--r--sys/powerpc/aim/trap_subr.S6
1 files changed, 2 insertions, 4 deletions
diff --git a/sys/powerpc/aim/trap_subr.S b/sys/powerpc/aim/trap_subr.S
index d782fae..0c62d83 100644
--- a/sys/powerpc/aim/trap_subr.S
+++ b/sys/powerpc/aim/trap_subr.S
@@ -460,9 +460,7 @@ disitrap:
stw %r30,(PC_DBSAVE +CPUSAVE_R30)(%r1) /* save r30 */
lwz %r31,(PC_DISISAVE+CPUSAVE_R31)(%r1) /* get r31 */
stw %r31,(PC_DBSAVE +CPUSAVE_R31)(%r1) /* save r31 */
- lis %r1,(tmpstk+TMPSTKSZ-16)@ha /* get new SP */
- addi %r1,%r1,(tmpstk+TMPSTKSZ-16)@l
- b dbtrap
+ bla dbtrap
#endif
/* XXX need stack probe here */
@@ -631,7 +629,7 @@ dbtrap:
mflr %r28
mfcr %r29
lwz %r31,(PC_DBSAVE+CPUSAVE_R31)(%r1)
- mtlr %r31
+ mtsprg3 %r31 /* SPRG3 was clobbered by FRAME_LEAVE */
mfsprg1 %r1
b realtrap
dbleave:
OpenPOWER on IntegriCloud