Module Name: src
Committed By: matt
Date: Tue Nov 15 19:01:54 UTC 2011
Modified Files:
src/sys/arch/arm/arm: undefined.c
Log Message:
Make sure to advance past the instruction we just emulated.
To generate a diff of this commit:
cvs rdiff -u -r1.41 -r1.42 src/sys/arch/arm/arm/undefined.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/arm/arm/undefined.c
diff -u src/sys/arch/arm/arm/undefined.c:1.41 src/sys/arch/arm/arm/undefined.c:1.42
--- src/sys/arch/arm/arm/undefined.c:1.41 Thu Apr 7 11:02:24 2011
+++ src/sys/arch/arm/arm/undefined.c Tue Nov 15 19:01:54 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: undefined.c,v 1.41 2011/04/07 11:02:24 matt Exp $ */
+/* $NetBSD: undefined.c,v 1.42 2011/11/15 19:01:54 matt Exp $ */
/*
* Copyright (c) 2001 Ben Harris.
@@ -54,7 +54,7 @@
#include <sys/kgdb.h>
#endif
-__KERNEL_RCSID(0, "$NetBSD: undefined.c,v 1.41 2011/04/07 11:02:24 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: undefined.c,v 1.42 2011/11/15 19:01:54 matt Exp $");
#include <sys/malloc.h>
#include <sys/queue.h>
@@ -151,6 +151,7 @@ cp15_trapper(u_int addr, u_int insn, str
*/
if ((insn & 0xffff0fff) == 0xee1d0f70) {
*regp = (uintptr_t)l->l_private;
+ frame->tf_pc += INSN_SIZE
return 0;
}
@@ -163,6 +164,7 @@ cp15_trapper(u_int addr, u_int insn, str
*regp = pcb->pcb_user_pid_rw;
else
pcb->pcb_user_pid_rw = *regp;
+ frame->tf_pc += INSN_SIZE
return 0;
}