summaryrefslogtreecommitdiff
path: root/target/linux/x86/patches-3.7/160-kexec-fix.patch
blob: ea32494a0905b8964d635236473476885807fc44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
From 357954613bdbab0c1f3986589ff30cc4855a2efd Mon Sep 17 00:00:00 2001
From: root <root@cent.localnet>
Date: Sun, 6 Dec 2009 18:26:43 +0000
Subject: [PATCH 03/14] kexec fix

---
 arch/x86/kernel/relocate_kernel_32.S |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

--- a/arch/x86/kernel/relocate_kernel_32.S
+++ b/arch/x86/kernel/relocate_kernel_32.S
@@ -54,8 +54,10 @@ relocate_kernel:
 	movl	%eax, CR0(%edi)
 	movl	%cr3, %eax
 	movl	%eax, CR3(%edi)
+#ifndef CONFIG_X86_RDC321X
 	movl	%cr4, %eax
 	movl	%eax, CR4(%edi)
+#endif
 
 	/* read the arguments and say goodbye to the stack */
 	movl  20+4(%esp), %ebx /* page_list */
@@ -124,7 +126,9 @@ identity_mapped:
 	 * Setting everything to zero seems safe.
 	 */
 	xorl	%eax, %eax
+#ifndef CONFIG_X86_RDC321X
 	movl	%eax, %cr4
+#endif
 
 	jmp 1f
 1:
@@ -195,8 +199,10 @@ identity_mapped:
 	ret
 
 virtual_mapped:
+#ifndef CONFIG_X86_RDC321X
 	movl	CR4(%edi), %eax
 	movl	%eax, %cr4
+#endif
 	movl	CR3(%edi), %eax
 	movl	%eax, %cr3
 	movl	CR0(%edi), %eax