diff options
| -rw-r--r-- | sys/amd64/amd64/trap.c | 4 | ||||
| -rw-r--r-- | sys/i386/i386/trap.c | 4 | ||||
| -rw-r--r-- | sys/kern/subr_trap.c | 4 |
3 files changed, 12 insertions, 0 deletions
diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c index 5167ceb5c12a..09cc034d884b 100644 --- a/sys/amd64/amd64/trap.c +++ b/sys/amd64/amd64/trap.c @@ -337,7 +337,9 @@ restart: */ eva = rcr2(); enable_intr(); + mtx_lock(&Giant); i = trap_pfault(&frame, TRUE, eva); + mtx_unlock(&Giant); #if defined(I586_CPU) && !defined(NO_F00F_HACK) if (i == -2) { /* @@ -448,7 +450,9 @@ restart: */ eva = rcr2(); enable_intr(); + mtx_lock(&Giant); (void) trap_pfault(&frame, FALSE, eva); + mtx_unlock(&Giant); goto out; case T_DNA: diff --git a/sys/i386/i386/trap.c b/sys/i386/i386/trap.c index 5167ceb5c12a..09cc034d884b 100644 --- a/sys/i386/i386/trap.c +++ b/sys/i386/i386/trap.c @@ -337,7 +337,9 @@ restart: */ eva = rcr2(); enable_intr(); + mtx_lock(&Giant); i = trap_pfault(&frame, TRUE, eva); + mtx_unlock(&Giant); #if defined(I586_CPU) && !defined(NO_F00F_HACK) if (i == -2) { /* @@ -448,7 +450,9 @@ restart: */ eva = rcr2(); enable_intr(); + mtx_lock(&Giant); (void) trap_pfault(&frame, FALSE, eva); + mtx_unlock(&Giant); goto out; case T_DNA: diff --git a/sys/kern/subr_trap.c b/sys/kern/subr_trap.c index 5167ceb5c12a..09cc034d884b 100644 --- a/sys/kern/subr_trap.c +++ b/sys/kern/subr_trap.c @@ -337,7 +337,9 @@ restart: */ eva = rcr2(); enable_intr(); + mtx_lock(&Giant); i = trap_pfault(&frame, TRUE, eva); + mtx_unlock(&Giant); #if defined(I586_CPU) && !defined(NO_F00F_HACK) if (i == -2) { /* @@ -448,7 +450,9 @@ restart: */ eva = rcr2(); enable_intr(); + mtx_lock(&Giant); (void) trap_pfault(&frame, FALSE, eva); + mtx_unlock(&Giant); goto out; case T_DNA: |
