summaryrefslogtreecommitdiff
path: root/kexec/arch/i386/x86-linux-setup.c
diff options
context:
space:
mode:
authorDave Young <dyoung@redhat.com>2013-12-20 18:05:46 +0800
committerSimon Horman <horms@verge.net.au>2014-01-21 14:01:28 +0900
commit9c200a85de2245a850546fded96a1977b84ad24d (patch)
tree6cee0ea5570ea4eb9aedab009cae7c6086de90b4 /kexec/arch/i386/x86-linux-setup.c
parentfe8a7c2ce02c407bdd7304bd2abfa637e26b6442 (diff)
Add efi_info in x86 setup header
For supporting efi runtime on kexec kernel we need to fill the efi_info struct in setup_header. I just get the info in kernel exported boot_params data in debugfs. Signed-off-by: Dave Young <dyoung@redhat.com> Tested-by: Toshi Kani <toshi.kani@hp.com> Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'kexec/arch/i386/x86-linux-setup.c')
-rw-r--r--kexec/arch/i386/x86-linux-setup.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/kexec/arch/i386/x86-linux-setup.c b/kexec/arch/i386/x86-linux-setup.c
index 7b4c65d..38bd9dd 100644
--- a/kexec/arch/i386/x86-linux-setup.c
+++ b/kexec/arch/i386/x86-linux-setup.c
@@ -480,6 +480,13 @@ void setup_subarch(struct x86_linux_param_header *real_mode)
get_bootparam(&real_mode->hardware_subarch, offset, sizeof(uint32_t));
}
+static void setup_efi_info(struct x86_linux_param_header *real_mode)
+{
+ off_t offset = offsetof(typeof(*real_mode), efi_info);
+
+ get_bootparam(&real_mode->efi_info, offset, 32);
+}
+
void setup_linux_system_parameters(struct kexec_info *info,
struct x86_linux_param_header *real_mode)
{
@@ -489,6 +496,8 @@ void setup_linux_system_parameters(struct kexec_info *info,
/* get subarch from running kernel */
setup_subarch(real_mode);
+ if (bzImage_support_efi_boot)
+ setup_efi_info(real_mode);
/* Default screen size */
real_mode->orig_x = 0;