diff options
author | nwhitehorn <nwhitehorn@FreeBSD.org> | 2009-04-11 20:43:41 +0000 |
---|---|---|
committer | nwhitehorn <nwhitehorn@FreeBSD.org> | 2009-04-11 20:43:41 +0000 |
commit | 8a26716497aadc804f1ff89823e32608cf01ee24 (patch) | |
tree | e4e3f354aabe215e2eb44052204161813c892ca7 /sys/powerpc/aim | |
parent | cae135c4892f809b3e59f64a6973447bcd1fc8e3 (diff) | |
download | FreeBSD-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.S | 6 |
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: |