1
- From 097d3f0c0c735cd3fee4bcbb707cbccb4fd0770b Mon Sep 17 00:00:00 2001
1
+ From bf8e7496d95c2a71a3bdac4340e1a9c03b86b0af Mon Sep 17 00:00:00 2001
2
2
From: Konrad Rzeszutek Wilk <konrad@xxxxxxxxxx>
3
3
Date: Fri, 24 Apr 2015 16:47:18 -0400
4
- Subject: [PATCH 01/26] EFI/early: Add /noexit to inhibit calling
5
- ExitBootServices
4
+ Subject: [PATCH] EFI/early: Add /noexit to inhibit calling ExitBootServices
6
5
7
6
The '/noexitboot' parameter will inhibit Xen in calling ExitBootServices.
8
7
18
17
2 files changed, 12 insertions(+), 6 deletions(-)
19
18
20
19
diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
21
- index e82ac9daa7ad..2221cdec681a 100644
20
+ index f282358435f1..39cc8baef4bc 100644
22
21
--- a/xen/arch/x86/efi/efi-boot.h
23
22
+++ b/xen/arch/x86/efi/efi-boot.h
24
- @@ -816 ,7 +816 ,7 @@ void __init efi_multiboot2(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable
23
+ @@ -909 ,7 +909 ,7 @@ void asmlinkage __init efi_multiboot2(EFI_HANDLE ImageHandle,
25
24
26
25
efi_relocate_esrt(SystemTable);
27
26
@@ -31,10 +30,10 @@ index e82ac9daa7ad..2221cdec681a 100644
31
30
32
31
/*
33
32
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
34
- index db0340c8e262..d78a315e56e0 100644
33
+ index efbec00af9da..8004cf4d1303 100644
35
34
--- a/xen/common/efi/boot.c
36
35
+++ b/xen/common/efi/boot.c
37
- @@ -145 ,7 +145 ,7 @@ static void efi_tables(void);
36
+ @@ -146 ,7 +146 ,7 @@ static void efi_tables(void);
38
37
static void setup_efi_pci(void);
39
38
static void efi_variables(void);
40
39
static void efi_set_gop_mode(EFI_GRAPHICS_OUTPUT_PROTOCOL *gop, UINTN gop_mode);
@@ -43,7 +42,7 @@ index db0340c8e262..d78a315e56e0 100644
43
42
44
43
static const EFI_BOOT_SERVICES *__initdata efi_bs;
45
44
static UINT32 __initdata efi_bs_revision;
46
- @@ -1175 ,7 +1175 ,7 @@ static void __init efi_relocate_esrt(EFI_SYSTEM_TABLE *SystemTable)
45
+ @@ -1180 ,7 +1180 ,7 @@ static void __init efi_set_gop_mode(EFI_GRAPHICS_OUTPUT_PROTOCOL *gop, UINTN gop
47
46
#define INVALID_VIRTUAL_ADDRESS (0xBAAADUL << \
48
47
(EFI_PAGE_SHIFT + BITS_PER_LONG - 32))
49
48
@@ -52,7 +51,7 @@ index db0340c8e262..d78a315e56e0 100644
52
51
{
53
52
EFI_STATUS status;
54
53
UINTN info_size = 0, map_key;
55
- @@ -1206 ,8 +1206 ,11 @@ static void __init efi_exit_boot(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *Syste
54
+ @@ -1211 ,8 +1211 ,11 @@ static void __init efi_exit_boot(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *Syste
56
55
57
56
efi_arch_pre_exit_boot();
58
57
@@ -65,7 +64,7 @@ index db0340c8e262..d78a315e56e0 100644
65
64
efi_bs = NULL;
66
65
if ( status != EFI_INVALID_PARAMETER || retry )
67
66
break;
68
- @@ -1262 ,7 +1265 ,7 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
67
+ @@ -1268 ,7 +1271 ,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
69
68
EFI_SHIM_LOCK_PROTOCOL *shim_lock;
70
69
EFI_GRAPHICS_OUTPUT_PROTOCOL *gop = NULL;
71
70
union string section = { NULL }, name;
@@ -74,7 +73,7 @@ index db0340c8e262..d78a315e56e0 100644
74
73
const char *option_str;
75
74
bool use_cfg_file;
76
75
int dt_modules_found;
77
- @@ -1312 ,6 +1315 ,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
76
+ @@ -1318 ,6 +1321 ,8 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
78
77
base_video = true;
79
78
else if ( wstrcmp(ptr + 1, L"mapbs") == 0 )
80
79
map_bs = true;
@@ -83,15 +82,15 @@ index db0340c8e262..d78a315e56e0 100644
83
82
else if ( wstrncmp(ptr + 1, L"cfg=", 4) == 0 )
84
83
cfg_file_name = ptr + 5;
85
84
else if ( i + 1 < argc && wstrcmp(ptr + 1, L"cfg") == 0 )
86
- @@ -1322 ,6 +1327 ,7 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
85
+ @@ -1328 ,6 +1333 ,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
87
86
PrintStr(L"Xen EFI Loader options:\r\n");
88
87
PrintStr(L"-basevideo retain current video mode\r\n");
89
88
PrintStr(L"-mapbs map EfiBootServices{Code,Data}\r\n");
90
89
+ PrintStr(L"-noexitboot Do not call ExitBootServices\r\n");
91
90
PrintStr(L"-cfg=<file> specify configuration file\r\n");
92
91
PrintStr(L"-help, -? display this help\r\n");
93
92
blexit(NULL);
94
- @@ -1539 ,7 +1545 ,7 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
93
+ @@ -1541 ,7 +1547 ,7 @@ void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle,
95
94
96
95
efi_relocate_esrt(SystemTable);
97
96
@@ -101,5 +100,5 @@ index db0340c8e262..d78a315e56e0 100644
101
100
efi_arch_post_exit_boot(); /* Doesn't return. */
102
101
}
103
102
- -
104
- 2.37.3
103
+ 2.44.0
105
104
0 commit comments