summaryrefslogtreecommitdiffstats
path: root/include/linux/kexec.h
diff options
context:
space:
mode:
authorHuang Ying <ying.huang@intel.com>2008-10-31 09:48:08 +0800
committerIngo Molnar <mingo@elte.hu>2008-10-31 10:01:56 +0100
commit92be3d6bdf2cb34972ab50e12ad4da1076e690da (patch)
tree6ed10cb8a14615ca0bda48f64520c82480397d00 /include/linux/kexec.h
parent31498a01496ffca3b542bae72b8ec499cd9302db (diff)
downloadlinux-stable-92be3d6bdf2cb34972ab50e12ad4da1076e690da.tar.gz
linux-stable-92be3d6bdf2cb34972ab50e12ad4da1076e690da.tar.bz2
linux-stable-92be3d6bdf2cb34972ab50e12ad4da1076e690da.zip
kexec/i386: allocate page table pages dynamically
Impact: save .text size when kexec is built in but not loaded This patch adds an architecture specific struct kimage_arch into struct kimage. The pointers to page table pages used by kexec are added to struct kimage_arch. The page tables pages are dynamically allocated in machine_kexec_prepare instead of statically from BSS segment. This will save up to 20k memory when kexec image is not loaded. Signed-off-by: Huang Ying <ying.huang@intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/linux/kexec.h')
-rw-r--r--include/linux/kexec.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/kexec.h b/include/linux/kexec.h
index 17f76fc05173..adc34f2c6eff 100644
--- a/include/linux/kexec.h
+++ b/include/linux/kexec.h
@@ -100,6 +100,10 @@ struct kimage {
#define KEXEC_TYPE_DEFAULT 0
#define KEXEC_TYPE_CRASH 1
unsigned int preserve_context : 1;
+
+#ifdef ARCH_HAS_KIMAGE_ARCH
+ struct kimage_arch arch;
+#endif
};