Wired GP fault exception tables handling
authorDavide Libenzi <dlibenzi@google.com>
Tue, 24 Nov 2015 20:22:53 +0000 (12:22 -0800)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 24 Nov 2015 20:38:22 +0000 (15:38 -0500)
Wired GP fault exception tables handling.

Signed-off-by: Davide Libenzi <dlibenzi@google.com>
Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/arch/x86/trap.c

index 8cb1b9c..0ff448b 100644 (file)
@@ -381,8 +381,11 @@ static void trap_dispatch(struct hw_trapframe *hw_tf)
                        break;
                default:
                        if (hw_tf->tf_cs == GD_KT) {
-                               print_trapframe(hw_tf);
-                               panic("Damn Damn!  Unhandled trap in the kernel!");
+                               handled = try_handle_exception_fixup(hw_tf);
+                               if (!handled) {
+                                       print_trapframe(hw_tf);
+                                       panic("Damn Damn!  Unhandled trap in the kernel!");
+                               }
                        } else {
                                handled = FALSE;
                        }