diff options
Diffstat (limited to 'arch/x86/kernel/machine_kexec_64.c')
-rw-r--r-- | arch/x86/kernel/machine_kexec_64.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/x86/kernel/machine_kexec_64.c b/arch/x86/kernel/machine_kexec_64.c index 8b04018e5d1f..485981059a40 100644 --- a/arch/x86/kernel/machine_kexec_64.c +++ b/arch/x86/kernel/machine_kexec_64.c | |||
@@ -25,9 +25,11 @@ | |||
25 | #include <asm/debugreg.h> | 25 | #include <asm/debugreg.h> |
26 | #include <asm/kexec-bzimage64.h> | 26 | #include <asm/kexec-bzimage64.h> |
27 | 27 | ||
28 | #ifdef CONFIG_KEXEC_FILE | ||
28 | static struct kexec_file_ops *kexec_file_loaders[] = { | 29 | static struct kexec_file_ops *kexec_file_loaders[] = { |
29 | &kexec_bzImage64_ops, | 30 | &kexec_bzImage64_ops, |
30 | }; | 31 | }; |
32 | #endif | ||
31 | 33 | ||
32 | static void free_transition_pgtable(struct kimage *image) | 34 | static void free_transition_pgtable(struct kimage *image) |
33 | { | 35 | { |
@@ -178,6 +180,7 @@ static void load_segments(void) | |||
178 | ); | 180 | ); |
179 | } | 181 | } |
180 | 182 | ||
183 | #ifdef CONFIG_KEXEC_FILE | ||
181 | /* Update purgatory as needed after various image segments have been prepared */ | 184 | /* Update purgatory as needed after various image segments have been prepared */ |
182 | static int arch_update_purgatory(struct kimage *image) | 185 | static int arch_update_purgatory(struct kimage *image) |
183 | { | 186 | { |
@@ -209,6 +212,12 @@ static int arch_update_purgatory(struct kimage *image) | |||
209 | 212 | ||
210 | return ret; | 213 | return ret; |
211 | } | 214 | } |
215 | #else /* !CONFIG_KEXEC_FILE */ | ||
216 | static inline int arch_update_purgatory(struct kimage *image) | ||
217 | { | ||
218 | return 0; | ||
219 | } | ||
220 | #endif /* CONFIG_KEXEC_FILE */ | ||
212 | 221 | ||
213 | int machine_kexec_prepare(struct kimage *image) | 222 | int machine_kexec_prepare(struct kimage *image) |
214 | { | 223 | { |
@@ -329,6 +338,7 @@ void arch_crash_save_vmcoreinfo(void) | |||
329 | 338 | ||
330 | /* arch-dependent functionality related to kexec file-based syscall */ | 339 | /* arch-dependent functionality related to kexec file-based syscall */ |
331 | 340 | ||
341 | #ifdef CONFIG_KEXEC_FILE | ||
332 | int arch_kexec_kernel_image_probe(struct kimage *image, void *buf, | 342 | int arch_kexec_kernel_image_probe(struct kimage *image, void *buf, |
333 | unsigned long buf_len) | 343 | unsigned long buf_len) |
334 | { | 344 | { |
@@ -522,3 +532,4 @@ overflow: | |||
522 | (int)ELF64_R_TYPE(rel[i].r_info), value); | 532 | (int)ELF64_R_TYPE(rel[i].r_info), value); |
523 | return -ENOEXEC; | 533 | return -ENOEXEC; |
524 | } | 534 | } |
535 | #endif /* CONFIG_KEXEC_FILE */ | ||