]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
x86 setup: add a near jump to serialize %cr0 on 386/486
authorH. Peter Anvin <hpa@zytor.com>
Mon, 5 Nov 2007 01:50:12 +0000 (17:50 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 14 Dec 2007 17:50:58 +0000 (09:50 -0800)
patch 7ed192906a2144ebc8ca2925a85d27b9c5355668 in mainline.

The 386 and 486 needs a jump immediately after setting %cr0 in order
to serialize the pipeline.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/i386/boot/pmjump.S

index 2e559233725a453845d03e19179e8620399f15ce..26baeab3a4d4e68f2a0d222732998d696521a9ec 100644 (file)
@@ -31,14 +31,14 @@ protected_mode_jump:
        xorl    %ebx, %ebx              # Flag to indicate this is a boot
        movl    %edx, %esi              # Pointer to boot_params table
        movl    %eax, 2f                # Patch ljmpl instruction
-       jmp     1f                      # Short jump to flush instruction q.
 
-1:
        movw    $__BOOT_DS, %cx
 
        movl    %cr0, %edx
        orb     $1, %dl                 # Protected mode (PE) bit
        movl    %edx, %cr0
+       jmp     1f                      # Short jump to serialize on 386/486
+1:
 
        movw    %cx, %ds
        movw    %cx, %es