[H. Peter Anvin - Tue, May 13, 2008 at 10:03:42AM -0700]Cyrill Gorcunov wrote:There is no need for testing the values because we already knowHe isn't testing them, he's setting individual bits.
what they should be. Just set them in straight way.
Either of these is pretty silly; the right way to do this is:
movl $(X86_CR4_PAE|X86_CR4_PGE), %eax
movq %rax, %cr4
A movl in 64-bit mode zero extends.
-hpa
Here is updated version
---
[PATCH] x86: head_64.S cleanup - use straight move to CR4 register
Signed-off-by: Cyrill Gorcunov <gorcunov@xxxxxxxxx>
---
Index: linux-2.6.git/arch/x86/kernel/head_64.S
===================================================================
--- linux-2.6.git.orig/arch/x86/kernel/head_64.S 2008-05-13 20:04:23.000000000 +0400
+++ linux-2.6.git/arch/x86/kernel/head_64.S 2008-05-13 21:08:20.000000000 +0400
@@ -155,9 +155,7 @@ ENTRY(secondary_startup_64)
*/
/* Enable PAE mode and PGE */
- xorq %rax, %rax
- btsq $5, %rax
- btsq $7, %rax
+ movl $(X86_CR4_PAE | X86_CR4_PGE), %rax
movq %rax, %cr4