summaryrefslogtreecommitdiff
path: root/target/linux/x86/patches-3.7/160-kexec-fix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/x86/patches-3.7/160-kexec-fix.patch')
-rw-r--r--target/linux/x86/patches-3.7/160-kexec-fix.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/target/linux/x86/patches-3.7/160-kexec-fix.patch b/target/linux/x86/patches-3.7/160-kexec-fix.patch
new file mode 100644
index 0000000..ea32494
--- /dev/null
+++ b/target/linux/x86/patches-3.7/160-kexec-fix.patch
@@ -0,0 +1,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