};
 #endif
 
-struct kexec_sha_region {
-       unsigned long start;
-       unsigned long len;
-};
-
+#ifdef CONFIG_KEXEC_FILE
 struct purgatory_info {
        /* Pointer to elf header of read only purgatory */
        Elf_Ehdr *ehdr;
        unsigned long purgatory_load_addr;
 };
 
+typedef int (kexec_probe_t)(const char *kernel_buf, unsigned long kernel_size);
+typedef void *(kexec_load_t)(struct kimage *image, char *kernel_buf,
+                            unsigned long kernel_len, char *initrd,
+                            unsigned long initrd_len, char *cmdline,
+                            unsigned long cmdline_len);
+typedef int (kexec_cleanup_t)(void *loader_data);
+
+#ifdef CONFIG_KEXEC_VERIFY_SIG
+typedef int (kexec_verify_sig_t)(const char *kernel_buf,
+                                unsigned long kernel_len);
+#endif
+
+struct kexec_file_ops {
+       kexec_probe_t *probe;
+       kexec_load_t *load;
+       kexec_cleanup_t *cleanup;
+#ifdef CONFIG_KEXEC_VERIFY_SIG
+       kexec_verify_sig_t *verify_sig;
+#endif
+};
+#endif
+
 struct kimage {
        kimage_entry_t head;
        kimage_entry_t *entry;
        struct kimage_arch arch;
 #endif
 
+#ifdef CONFIG_KEXEC_FILE
        /* Additional fields for file based kexec syscall */
        void *kernel_buf;
        unsigned long kernel_buf_len;
 
        /* Information for loading purgatory */
        struct purgatory_info purgatory_info;
-};
-
-/*
- * Keeps track of buffer parameters as provided by caller for requesting
- * memory placement of buffer.
- */
-struct kexec_buf {
-       struct kimage *image;
-       char *buffer;
-       unsigned long bufsz;
-       unsigned long mem;
-       unsigned long memsz;
-       unsigned long buf_align;
-       unsigned long buf_min;
-       unsigned long buf_max;
-       bool top_down;          /* allocate from top of memory hole */
-};
-
-typedef int (kexec_probe_t)(const char *kernel_buf, unsigned long kernel_size);
-typedef void *(kexec_load_t)(struct kimage *image, char *kernel_buf,
-                            unsigned long kernel_len, char *initrd,
-                            unsigned long initrd_len, char *cmdline,
-                            unsigned long cmdline_len);
-typedef int (kexec_cleanup_t)(void *loader_data);
-typedef int (kexec_verify_sig_t)(const char *kernel_buf,
-                                unsigned long kernel_len);
-
-struct kexec_file_ops {
-       kexec_probe_t *probe;
-       kexec_load_t *load;
-       kexec_cleanup_t *cleanup;
-       kexec_verify_sig_t *verify_sig;
+#endif
 };
 
 /* kexec interface functions */
 
 extern struct mutex kexec_mutex;
 
 #ifdef CONFIG_KEXEC_FILE
+struct kexec_sha_region {
+       unsigned long start;
+       unsigned long len;
+};
+
+/*
+ * Keeps track of buffer parameters as provided by caller for requesting
+ * memory placement of buffer.
+ */
+struct kexec_buf {
+       struct kimage *image;
+       char *buffer;
+       unsigned long bufsz;
+       unsigned long mem;
+       unsigned long memsz;
+       unsigned long buf_align;
+       unsigned long buf_min;
+       unsigned long buf_max;
+       bool top_down;          /* allocate from top of memory hole */
+};
+
 void kimage_file_post_load_cleanup(struct kimage *image);
 #else /* CONFIG_KEXEC_FILE */
 static inline void kimage_file_post_load_cleanup(struct kimage *image) { }