[patch 27/60] x86 setup: add a near jump to serialize %cr0 on 386/486

Greg KH
2007-12-13T07:07:24Z

[-- Attachment #1: x86-setup-add-a-near-jump-to-serialize-cr0-on-386-486.patch --]
[-- Type: text/plain, Size: 979 bytes --]

2.6.23-stable review patch. If anyone has any objections, please let us
know.

------------------
From: H. Peter Anvin <hpa@zytor.com>

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 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--- a/arch/i386/boot/pmjump.S
+++ b/arch/i386/boot/pmjump.S
@@ -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

--