]> git.sur5r.net Git - u-boot/commitdiff
x86: Call hang() on unrecoverable exception
authorGraeme Russ <graeme.russ@gmail.com>
Tue, 8 Nov 2011 02:33:12 +0000 (02:33 +0000)
committerGraeme Russ <graeme.russ@gmail.com>
Tue, 29 Nov 2011 10:01:13 +0000 (21:01 +1100)
Signed-off-by: Graeme Russ <graeme.russ@gmail.com>
arch/x86/cpu/interrupts.c

index c6e72eaa630959e3527514bfe9411ba809fe8961..89f39d2e363ca064f5db340aff4d4c40d124513e 100644 (file)
@@ -255,7 +255,7 @@ void irq_llsr(struct irq_regs *regs)
        case 0x00:
                printf("Divide Error (Division by zero)\n");
                dump_regs(regs);
-               while(1);
+               hang();
                break;
        case 0x01:
                printf("Debug Interrupt (Single step)\n");
@@ -272,32 +272,32 @@ void irq_llsr(struct irq_regs *regs)
        case 0x04:
                printf("Overflow\n");
                dump_regs(regs);
-               while(1);
+               hang();
                break;
        case 0x05:
                printf("BOUND Range Exceeded\n");
                dump_regs(regs);
-               while(1);
+               hang();
                break;
        case 0x06:
                printf("Invalid Opcode (UnDefined Opcode)\n");
                dump_regs(regs);
-               while(1);
+               hang();
                break;
        case 0x07:
                printf("Device Not Available (No Math Coprocessor)\n");
                dump_regs(regs);
-               while(1);
+               hang();
                break;
        case 0x08:
                printf("Double fault\n");
                dump_regs(regs);
-               while(1);
+               hang();
                break;
        case 0x09:
                printf("Co-processor segment overrun\n");
                dump_regs(regs);
-               while(1);
+               hang();
                break;
        case 0x0a:
                printf("Invalid TSS\n");
@@ -306,12 +306,12 @@ void irq_llsr(struct irq_regs *regs)
        case 0x0b:
                printf("Segment Not Present\n");
                dump_regs(regs);
-               while(1);
+               hang();
                break;
        case 0x0c:
                printf("Stack Segment Fault\n");
                dump_regs(regs);
-               while(1);
+               hang();
                break;
        case 0x0d:
                printf("General Protection\n");
@@ -320,7 +320,7 @@ void irq_llsr(struct irq_regs *regs)
        case 0x0e:
                printf("Page fault\n");
                dump_regs(regs);
-               while(1);
+               hang();
                break;
        case 0x0f:
                printf("Floating-Point Error (Math Fault)\n");