diff options
Diffstat (limited to 'sys/amd64')
-rw-r--r-- | sys/amd64/amd64/trap.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c index c08fc58..fd4c8fe 100644 --- a/sys/amd64/amd64/trap.c +++ b/sys/amd64/amd64/trap.c @@ -286,10 +286,14 @@ trap(frame) #if defined(I586_CPU) && !defined(NO_F00F_HACK) if (i == -2) { /* - * f00f hack workaround has triggered, treat - * as illegal instruction not page fault. + * The f00f hack workaround has triggered, so + * treat the fault as an illegal instruction + * (T_PRIVINFLT) instead of a page fault. */ - ucode = T_PRIVINFLT; + type = frame.tf_trapno = T_PRIVINFLT; + + /* Proceed as in that case. */ + ucode = type; i = SIGILL; break; } |