aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kernel/reboot_32.S10
1 files changed, 7 insertions, 3 deletions
diff --git a/arch/x86/kernel/reboot_32.S b/arch/x86/kernel/reboot_32.S
index f242356a096e..29092b38d816 100644
--- a/arch/x86/kernel/reboot_32.S
+++ b/arch/x86/kernel/reboot_32.S
@@ -23,10 +23,14 @@ r_base = .
231: popl %ebx 231: popl %ebx
24 subl $1b, %ebx 24 subl $1b, %ebx
25 25
26 /* Compute the equivalent real-mode segment */
27 movl %ebx, %ecx
28 shrl $4, %ecx
29
26 /* Patch post-real-mode segment jump */ 30 /* Patch post-real-mode segment jump */
27 movw dispatch_table(%ebx,%ecx,2),%cx 31 movw dispatch_table(%ebx,%eax,2),%ax
28 movw %cx, 101f(%ebx) 32 movw %ax, 101f(%ebx)
29 movw %ax, 102f(%ebx) 33 movw %cx, 102f(%ebx)
30 34
31 /* Set up the IDT for real mode. */ 35 /* Set up the IDT for real mode. */
32 lidtl machine_real_restart_idt(%ebx) 36 lidtl machine_real_restart_idt(%ebx)