History log of /arch/x86/kernel/relocate_kernel_64.S
Revision Date Author Comments
f037e416afb38b9ee8ac598d68733fcbaf665384 21-Jun-2013 H. Peter Anvin <hpa@linux.intel.com> x86, reloc: Use xorl instead of xorq in relocate_kernel_64.S

There is no point in using "xorq" to clear a register... use "xorl" to
clear the bottom 32 bits, and the upper 32 bits get cleared by virtue
of zero extension.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cc: Kees Cook <keescook@chromium.org>
Link: http://lkml.kernel.org/n/tip-b76zi1gep39c0zs8fbvkhie9@git.kernel.org
c8a22d19dd238ede87aa0ac4f7dbea8da039b9c1 05-Jun-2013 Kees Cook <keescook@chromium.org> x86: Fix typo in kexec register clearing

Fixes a typo in register clearing code. Thanks to PaX Team for fixing
this originally, and James Troup for pointing it out.

Signed-off-by: Kees Cook <keescook@chromium.org>
Link: http://lkml.kernel.org/r/20130605184718.GA8396@www.outflux.net
Cc: <stable@vger.kernel.org> v2.6.30+
Cc: PaX Team <pageexec@freemail.hu>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
050438ed5a05b25cdf287f5691e56a58c2606997 14-Jul-2011 Huang Ying <ying.huang@intel.com> kexec, x86: Fix incorrect jump back address if not preserving context

In kexec jump support, jump back address passed to the kexeced
kernel via function calling ABI, that is, the function call
return address is the jump back entry.

Furthermore, jump back entry == 0 should be used to signal that
the jump back or preserve context is not enabled in the original
kernel.

But in the current implementation the stack position used for
function call return address is not cleared context
preservation is disabled. The patch fixes this bug.

Reported-and-tested-by: Yin Kangkai <kangkai.yin@intel.com>
Signed-off-by: Huang Ying <ying.huang@intel.com>
Cc: Eric W. Biederman <ebiederm@xmission.com>
Cc: Vivek Goyal <vgoyal@redhat.com>
Cc: <stable@kernel.org>
Link: http://lkml.kernel.org/r/1310607277-25029-1-git-send-email-ying.huang@intel.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
fee7b0d84cc8c7bc5dc212901c79e93eaf83a5b5 10-Mar-2009 Huang Ying <ying.huang@intel.com> x86, kexec: x86_64: add kexec jump support for x86_64

Impact: New major feature

This patch add kexec jump support for x86_64. More information about
kexec jump can be found in corresponding x86_32 support patch.

Signed-off-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
fef3a7a17418814733ebde0b40d8e32747677c8f 10-Mar-2009 Huang Ying <ying.huang@intel.com> x86, kexec: fix kexec x86 coding style

Impact: Cleanup

Fix some coding style issue for kexec x86.

Signed-off-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
0341c14da49e7b93d2998926f6ac89a3129e3fa1 13-Feb-2009 Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> x86: use _types.h headers in asm where available

In general, the only definitions that assembly files can use
are in _types.S headers (where available), so convert them.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
f5deb79679af6eb41b61112fadcda28b2a4cfb0d 03-Feb-2009 Huang Ying <ying.huang@intel.com> x86: kexec: Use one page table in x86_64 machine_kexec

Impact: reduce kernel BSS size by 7 pages, improve code readability

Two page tables are used in current x86_64 kexec implementation. One
is used to jump from kernel virtual address to identity map address,
the other is used to map all physical memory. In fact, on x86_64,
there is no conflict between kernel virtual address space and physical
memory space, so just one page table is sufficient. The page table
pages used to map control page are dynamically allocated to save
memory if kexec image is not loaded. ASM code used to map control page
is replaced by C code too.

Signed-off-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
366932deb335f0b84a08463c5c912bd42ac3397a 22-Mar-2008 gorcunov@gmail.com <gorcunov@gmail.com> x86: relocate_kernel - use predefined macroses for page attributes

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
fd3af53122e616c0ddba44a3da6d1c1877f72d29 22-Mar-2008 gorcunov@gmail.com <gorcunov@gmail.com> x86: relocate_kernel - use predefined macroses for processor state

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
a7bba17bf09e1c5bdbdd6c0ab0c7833baedf4653 22-Mar-2008 gorcunov@gmail.com <gorcunov@gmail.com> x86: relocate_kernel - use PAGE_SIZE instead of numeric constant

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
288621e32a7ae3a29c37b45297136c0264e2ff7b 21-Mar-2008 Cyrill Gorcunov <gorcunov@gmail.com> x86: relocate_kernel - use predefined PAGE_SIZE instead of own alias

This patch does clean up relocate_kernel_(32|64).S a bit by getting rid
of local PAGE_ALIGNED macro. We should use well-known PAGE_SIZE instead

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
250c22777fe1ccd7ac588579a6c16db4c0161cc5 11-Oct-2007 Thomas Gleixner <tglx@linutronix.de> x86_64: move kernel

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>