kexec: Avoid overwriting the current pgd (V2, stubs)
This patch adds an architecture specific structure "struct kimage_arch" to
struct kimage. This structure is filled in with members by the architecture
specific patches followed by this one.
Signed-off-by: Magnus Damm <[email protected]>
---
Applies on top of 2.6.16 and 2.6.17-rc4.
asm-i386/kexec.h | 2 ++
asm-powerpc/kexec.h | 2 ++
asm-s390/kexec.h | 2 ++
asm-sh/kexec.h | 2 ++
asm-x86_64/kexec.h | 2 ++
linux/kexec.h | 2 ++
6 files changed, 12 insertions(+)
--- 0001/include/asm-i386/kexec.h
+++ work/include/asm-i386/kexec.h 2006-05-19 11:54:07.000000000 +0900
@@ -29,6 +29,8 @@
#define MAX_NOTE_BYTES 1024
+struct kimage_arch {};
+
/* CPU does not save ss and esp on stack if execution is already
* running in kernel mode at the time of NMI occurrence. This code
* fixes it.
--- 0001/include/asm-powerpc/kexec.h
+++ work/include/asm-powerpc/kexec.h 2006-05-18 11:13:13.000000000 +0900
@@ -108,6 +108,8 @@ static inline void crash_setup_regs(stru
#define MAX_NOTE_BYTES 1024
+struct kimage_arch {};
+
#ifdef __powerpc64__
extern void kexec_smp_wait(void); /* get and clear naca physid, wait for
master to copy new code to 0 */
--- 0001/include/asm-s390/kexec.h
+++ work/include/asm-s390/kexec.h 2006-05-18 11:13:13.000000000 +0900
@@ -36,6 +36,8 @@
#define MAX_NOTE_BYTES 1024
+struct kimage_arch {};
+
/* Provide a dummy definition to avoid build failures. */
static inline void crash_setup_regs(struct pt_regs *newregs,
struct pt_regs *oldregs) { }
--- 0001/include/asm-sh/kexec.h
+++ work/include/asm-sh/kexec.h 2006-05-18 11:13:13.000000000 +0900
@@ -25,6 +25,8 @@
#ifndef __ASSEMBLY__
+struct kimage_arch {};
+
extern void machine_shutdown(void);
extern void *crash_notes;
--- 0001/include/asm-x86_64/kexec.h
+++ work/include/asm-x86_64/kexec.h 2006-05-18 11:13:13.000000000 +0900
@@ -29,6 +29,8 @@
#define MAX_NOTE_BYTES 1024
+struct kimage_arch {};
+
/*
* Saving the registers of the cpu on which panic occured in
* crash_kexec to save a valid sp. The registers of other cpus
--- 0001/include/linux/kexec.h
+++ work/include/linux/kexec.h 2006-05-18 11:13:13.000000000 +0900
@@ -69,6 +69,8 @@ struct kimage {
unsigned long start;
struct page *control_code_page;
+ struct kimage_arch arch_data;
+
unsigned long nr_segments;
struct kexec_segment segment[KEXEC_SEGMENT_MAX];
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]