summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2016-10-18 15:49:40 +0200
committerAlexander Graf <agraf@suse.de>2016-10-19 09:01:54 +0200
commit3fb97e267a5e136d8386a7cb1d5b4fe63af518eb (patch)
tree034b8c37d65ff216f95b1d87f76598028d52dcd7 /cmd
parent3c63db9ca9765c85bbcf2a06f4183cfb0036ea33 (diff)
efi_loader: Revert device_handle to disk after net boot
When you boot an efi payload from network, then exit that payload and load another payload from disk afterwords, the disk payload will currently see the network device as its boot path. This breaks grub2 for example which tries to find its modules based on the path it was loaded from. This patch fixes that issue by always reverting to disk paths if we're not in the network boot. That way the data structures after a network boot look the same as before. Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/bootefi.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/cmd/bootefi.c b/cmd/bootefi.c
index 8714666c03..c8079c4fe8 100644
--- a/cmd/bootefi.c
+++ b/cmd/bootefi.c
@@ -207,6 +207,8 @@ static unsigned long do_bootefi_exec(void *efi, void *fdt)
if (!memcmp(bootefi_device_path[0].str, "N\0e\0t", 6))
loaded_image_info.device_handle = nethandle;
+ else
+ loaded_image_info.device_handle = bootefi_device_path;
#endif
#ifdef CONFIG_GENERATE_SMBIOS_TABLE
efi_smbios_register();