]> git.baikalelectronics.ru Git - kernel.git/commit
purgatory: core purgatory functionality
authorVivek Goyal <vgoyal@redhat.com>
Fri, 8 Aug 2014 21:26:02 +0000 (14:26 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 8 Aug 2014 22:57:32 +0000 (15:57 -0700)
commit42a925a88885715f1946401d1c7a1631c6b9a379
tree16ef44c15e9802c1aed83d8eead0569822268794
parent4bd83d921ca39f0d9883c8d7d9b0a5376c5d203c
purgatory: core purgatory functionality

Create a stand alone relocatable object purgatory which runs between two
kernels.  This name, concept and some code has been taken from
kexec-tools.  Idea is that this code runs after a crash and it runs in
minimal environment.  So keep it separate from rest of the kernel and in
long term we will have to practically do no maintenance of this code.

This code also has the logic to do verify sha256 hashes of various
segments which have been loaded into memory.  So first we verify that the
kernel we are jumping to is fine and has not been corrupted and make
progress only if checsums are verified.

This code also takes care of copying some memory contents to backup region.

[sfr@canb.auug.org.au: run host built programs from objtree]
Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: Michael Kerrisk <mtk.manpages@gmail.com>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: Eric Biederman <ebiederm@xmission.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: Greg Kroah-Hartman <greg@kroah.com>
Cc: Dave Young <dyoung@redhat.com>
Cc: WANG Chao <chaowang@redhat.com>
Cc: Baoquan He <bhe@redhat.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/x86/Kbuild
arch/x86/Makefile
arch/x86/purgatory/Makefile [new file with mode: 0644]
arch/x86/purgatory/entry64.S [new file with mode: 0644]
arch/x86/purgatory/purgatory.c [new file with mode: 0644]
arch/x86/purgatory/setup-x86_64.S [new file with mode: 0644]
arch/x86/purgatory/stack.S [new file with mode: 0644]
arch/x86/purgatory/string.c [new file with mode: 0644]