Hi Atish,
First bad commit (maybe != root cause):
tree:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: fb57b1fabcb28f358901b2df90abd2b48abc1ca8
commit: 2e0eb483c058dd013be8e3d0ec1767be531485a2 [3391/10701] efi/libstub: Move arm-stub
to a common file
config: arm64-randconfig-r026-20200519 (attached as .config)
compiler: clang version 11.0.0 (
https://github.com/llvm/llvm-project
135b877874fae96b4372c8a3fbfaa8ff44ff86e3)
reproduce:
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
git checkout 2e0eb483c058dd013be8e3d0ec1767be531485a2
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
drivers/firmware/efi/libstub/efi-stub.c:68:6: warning: no previous prototype for function
'install_memreserve_table' [-Wmissing-prototypes]
void install_memreserve_table(void)
^
drivers/firmware/efi/libstub/efi-stub.c:68:1: note: declare 'static' if the
function is not intended to be used outside of this translation unit
void install_memreserve_table(void)
^
static
> drivers/firmware/efi/libstub/efi-stub.c:148:14: warning: no
previous prototype for function 'efi_entry' [-Wmissing-prototypes]
efi_status_t efi_entry(efi_handle_t handle, efi_system_table_t *sys_table_arg)
^
drivers/firmware/efi/libstub/efi-stub.c:148:1: note: declare 'static' if the
function is not intended to be used outside of this translation unit
efi_status_t efi_entry(efi_handle_t handle, efi_system_table_t *sys_table_arg)
^
static
2 warnings generated.
vim +/efi_entry +148 drivers/firmware/efi/libstub/efi-stub.c
b844470f22061e drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2018-09-21 124
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 125
/*
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 126 *
This function handles the architcture specific differences between arm and
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 127 *
arm64 regarding where the kernel image must be loaded and any memory that
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 128 *
must be reserved. On failure it is required to free all
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 129 *
all allocations it has made.
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 130
*/
cd33a5c1d53e43 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 131
efi_status_t handle_kernel_image(unsigned long *image_addr,
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 132
unsigned long *image_size,
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 133
unsigned long *reserve_addr,
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 134
unsigned long *reserve_size,
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 135
unsigned long dram_base,
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 136
efi_loaded_image_t *image);
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 137
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 138
asmlinkage void __noreturn efi_enter_kernel(unsigned long entrypoint,
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 139
unsigned long fdt_addr,
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 140
unsigned long fdt_size);
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 141
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 142
/*
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 143 *
EFI entry point for the arm/arm64 EFI stubs. This is the entrypoint
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 144 *
that is described in the PE/COFF header. Most of the code is the same
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 145 *
for both archictectures, with the arch-specific code provided in the
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 146 *
handle_kernel_image() function.
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 147
*/
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 @148
efi_status_t efi_entry(efi_handle_t handle, efi_system_table_t *sys_table_arg)
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 149 {
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 150
efi_loaded_image_t *image;
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 151
efi_status_t status;
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 152
unsigned long image_addr;
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 153
unsigned long image_size = 0;
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 154
unsigned long dram_base;
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 155
/* addr/point and size pairs for memory management*/
79d3219d4e56b3 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-04 156
unsigned long initrd_addr = 0;
9302c1bb8e4758 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-10 157
unsigned long initrd_size = 0;
345c736edd07b6 drivers/firmware/efi/arm-stub.c Ard Biesheuvel 2014-04-03 158
unsigned long fdt_addr = 0; /* Original DTB */
a643375f4b1755 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2015-03-04 159
unsigned long fdt_size = 0;
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 160
char *cmdline_ptr = NULL;
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 161
int cmdline_size = 0;
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 162
efi_guid_t loaded_image_proto = LOADED_IMAGE_PROTOCOL_GUID;
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 163
unsigned long reserve_addr = 0;
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 164
unsigned long reserve_size = 0;
de8cb458625c16 drivers/firmware/efi/libstub/arm-stub.c David Howells 2017-02-06 165
enum efi_secureboot_mode secure_boot;
f0827e18a7a1da drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2016-04-25 166
struct screen_info *si;
b92165d2ba869a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-10 167
efi_properties_table_t *prop_tbl;
ec93fc371f014a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-03 168
unsigned long max_addr;
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 169
2fcdad2a80a6d6 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 170
sys_table = sys_table_arg;
2fcdad2a80a6d6 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 171
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 172
/* Check if we were booted by the EFI firmware */
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 173
if (sys_table->hdr.signature != EFI_SYSTEM_TABLE_SIGNATURE) {
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 174
status = EFI_INVALID_PARAMETER;
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 175
goto fail;
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 176
}
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 177
cd33a5c1d53e43 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 178
status = check_platform_features();
b9d6769b5678db drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2016-02-17 179
if (status != EFI_SUCCESS)
b9d6769b5678db drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2016-02-17 180
goto fail;
b9d6769b5678db drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2016-02-17 181
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 182
/*
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 183
* Get a handle to the loaded image protocol. This is used to get
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 184
* information about the running image, such as size and the command
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 185
* line.
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 186
*/
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 187
status = sys_table->boottime->handle_protocol(handle,
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 188
&loaded_image_proto, (void *)&image);
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 189
if (status != EFI_SUCCESS) {
8173ec7905b5b0 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 190
pr_efi_err("Failed to get loaded image protocol\n");
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 191
goto fail;
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 192
}
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 193
cd33a5c1d53e43 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 194
dram_base = get_dram_base();
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 195
if (dram_base == EFI_ERROR) {
8173ec7905b5b0 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 196
pr_efi_err("Failed to find DRAM base\n");
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 197
status = EFI_LOAD_ERROR;
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 198
goto fail;
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 199
}
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 200
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 201
/*
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 202
* Get the command line from EFI, using the LOADED_IMAGE
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 203
* protocol. We are going to copy the command line into the
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 204
* device tree, so this can be allocated anywhere.
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 205
*/
1e45bf7372c48c drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-10 206
cmdline_ptr = efi_convert_cmdline(image, &cmdline_size, ULONG_MAX);
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 207
if (!cmdline_ptr) {
8173ec7905b5b0 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 208
pr_efi_err("getting command line via LOADED_IMAGE_PROTOCOL\n");
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 209
status = EFI_OUT_OF_RESOURCES;
2b5fe07a78a09a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2016-01-26 210
goto fail;
2b5fe07a78a09a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2016-01-26 211
}
2b5fe07a78a09a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2016-01-26 212
eeff7d634f4750 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 213
if (IS_ENABLED(CONFIG_CMDLINE_EXTEND) ||
eeff7d634f4750 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 214
IS_ENABLED(CONFIG_CMDLINE_FORCE) ||
eeff7d634f4750 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 215
cmdline_size == 0)
eeff7d634f4750 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 216
efi_parse_options(CONFIG_CMDLINE);
eeff7d634f4750 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 217
eeff7d634f4750 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 218
if (!IS_ENABLED(CONFIG_CMDLINE_FORCE) && cmdline_size > 0)
eeff7d634f4750 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 219
efi_parse_options(cmdline_ptr);
eeff7d634f4750 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 220
8173ec7905b5b0 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 221
pr_efi("Booting Linux Kernel...\n");
eeff7d634f4750 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 222
cd33a5c1d53e43 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 223
si = setup_graphics();
f0827e18a7a1da drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2016-04-25 224
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 225
status = handle_kernel_image(&image_addr, &image_size,
2b5fe07a78a09a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2016-01-26 226
&reserve_addr,
2b5fe07a78a09a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2016-01-26 227
&reserve_size,
2b5fe07a78a09a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2016-01-26 228
dram_base, image);
2b5fe07a78a09a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2016-01-26 229
if (status != EFI_SUCCESS) {
8173ec7905b5b0 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 230
pr_efi_err("Failed to relocate kernel\n");
2b5fe07a78a09a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2016-01-26 231
goto fail_free_cmdline;
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 232
}
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 233
cd33a5c1d53e43 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 234
efi_retrieve_tpm2_eventlog();
d99c1ba6a73b9e drivers/firmware/efi/libstub/arm-stub.c Xinwei Kong 2019-11-07 235
ccc829ba3624be drivers/firmware/efi/libstub/arm-stub.c Matthew Garrett 2017-08-25 236
/* Ask the firmware to clear memory on unclean shutdown */
cd33a5c1d53e43 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 237
efi_enable_reset_attack_mitigation();
ccc829ba3624be drivers/firmware/efi/libstub/arm-stub.c Matthew Garrett 2017-08-25 238
cd33a5c1d53e43 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 239
secure_boot = efi_get_secureboot();
73a6492589c87c drivers/firmware/efi/libstub/arm-stub.c Linn Crosetto 2016-04-25 240
345c736edd07b6 drivers/firmware/efi/arm-stub.c Ard Biesheuvel 2014-04-03 241
/*
de8cb458625c16 drivers/firmware/efi/libstub/arm-stub.c David Howells 2017-02-06 242
* Unauthenticated device tree data is a security hazard, so ignore
de8cb458625c16 drivers/firmware/efi/libstub/arm-stub.c David Howells 2017-02-06 243
* 'dtb=' unless UEFI Secure Boot is disabled. We assume that secure
de8cb458625c16 drivers/firmware/efi/libstub/arm-stub.c David Howells 2017-02-06 244
* boot is enabled if we can't determine its state.
345c736edd07b6 drivers/firmware/efi/arm-stub.c Ard Biesheuvel 2014-04-03 245
*/
3d7ee348aa4127 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2018-07-11 246
if (!IS_ENABLED(CONFIG_EFI_ARMSTUB_DTB_LOADER) ||
3d7ee348aa4127 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2018-07-11 247
secure_boot != efi_secureboot_mode_disabled) {
3d7ee348aa4127 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2018-07-11 248
if (strstr(cmdline_ptr, "dtb="))
8173ec7905b5b0 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 249
pr_efi("Ignoring DTB from command line.\n");
345c736edd07b6 drivers/firmware/efi/arm-stub.c Ard Biesheuvel 2014-04-03 250 }
else {
9302c1bb8e4758 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-10 251
status = efi_load_dtb(image, &fdt_addr, &fdt_size);
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 252
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 253
if (status != EFI_SUCCESS) {
8173ec7905b5b0 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 254
pr_efi_err("Failed to load device tree!\n");
2b5fe07a78a09a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2016-01-26 255
goto fail_free_image;
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 256
}
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 257
}
0bcaa9040d0586 drivers/firmware/efi/libstub/arm-stub.c Mark Rutland 2014-10-23 258
0bcaa9040d0586 drivers/firmware/efi/libstub/arm-stub.c Mark Rutland 2014-10-23 259
if (fdt_addr) {
8173ec7905b5b0 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 260
pr_efi("Using DTB from command line\n");
0bcaa9040d0586 drivers/firmware/efi/libstub/arm-stub.c Mark Rutland 2014-10-23 261 }
else {
345c736edd07b6 drivers/firmware/efi/arm-stub.c Ard Biesheuvel 2014-04-03 262
/* Look for a device tree configuration table entry. */
cd33a5c1d53e43 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 263
fdt_addr = (uintptr_t)get_fdt(&fdt_size);
0bcaa9040d0586 drivers/firmware/efi/libstub/arm-stub.c Mark Rutland 2014-10-23 264
if (fdt_addr)
8173ec7905b5b0 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 265
pr_efi("Using DTB from configuration table\n");
0bcaa9040d0586 drivers/firmware/efi/libstub/arm-stub.c Mark Rutland 2014-10-23 266
}
0bcaa9040d0586 drivers/firmware/efi/libstub/arm-stub.c Mark Rutland 2014-10-23 267
0bcaa9040d0586 drivers/firmware/efi/libstub/arm-stub.c Mark Rutland 2014-10-23 268
if (!fdt_addr)
8173ec7905b5b0 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 269
pr_efi("Generating empty DTB\n");
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 270
79d3219d4e56b3 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-04 271
if (!noinitrd()) {
ec93fc371f014a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-03 272
max_addr = efi_get_max_initrd_addr(dram_base, image_addr);
79d3219d4e56b3 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-04 273
status = efi_load_initrd_dev_path(&initrd_addr, &initrd_size,
79d3219d4e56b3 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-04 274
max_addr);
ec93fc371f014a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-03 275
if (status == EFI_SUCCESS) {
ec93fc371f014a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-03 276
pr_efi("Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path\n");
ec93fc371f014a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-03 277
} else if (status == EFI_NOT_FOUND) {
ec93fc371f014a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-03 278
status = efi_load_initrd(image, &initrd_addr, &initrd_size,
ec93fc371f014a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-03 279
ULONG_MAX, max_addr);
594e576d4b93b8 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-03-29 280
if (status == EFI_SUCCESS && initrd_size > 0)
ec93fc371f014a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-03 281
pr_efi("Loaded initrd from command line option\n");
ec93fc371f014a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-03 282
}
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 283
if (status != EFI_SUCCESS)
ec93fc371f014a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-03 284
pr_efi_err("Failed to load initrd!\n");
79d3219d4e56b3 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-04 285
}
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 286
cd33a5c1d53e43 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 287
efi_random_get_seed();
568bc4e87033d2 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2016-11-12 288
b92165d2ba869a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-10 289
/*
b92165d2ba869a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-10 290
* If the NX PE data feature is enabled in the properties table, we
b92165d2ba869a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-10 291
* should take care not to create a virtual mapping that changes the
b92165d2ba869a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-10 292
* relative placement of runtime services code and data regions, as
b92165d2ba869a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-10 293
* they may belong to the same PE/COFF executable image in memory.
b92165d2ba869a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-10 294
* The easiest way to achieve that is to simply use a 1:1 mapping.
b92165d2ba869a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-10 295
*/
b92165d2ba869a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-10 296
prop_tbl = get_efi_config_table(EFI_PROPERTIES_TABLE_GUID);
b92165d2ba869a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-10 297
flat_va_mapping = prop_tbl &&
b92165d2ba869a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-10 298
(prop_tbl->memory_protection_attribute &
b92165d2ba869a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-10 299
EFI_PROPERTIES_RUNTIME_MEMORY_PROTECTION_NON_EXECUTABLE_PE_DATA);
b92165d2ba869a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-10 300
38fb6652229c21 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-10-25 301
/* hibernation expects the runtime regions to stay in the same place */
b92165d2ba869a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-10 302
if (!IS_ENABLED(CONFIG_HIBERNATION) && !nokaslr() && !flat_va_mapping) {
e69176d68d26d6 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 303
/*
e69176d68d26d6 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 304
* Randomize the base of the UEFI runtime services region.
e69176d68d26d6 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 305
* Preserve the 2 MB alignment of the region by taking a
e69176d68d26d6 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 306
* shift of 21 bit positions into account when scaling
e69176d68d26d6 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 307
* the headroom value using a 32-bit random value.
e69176d68d26d6 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 308
*/
197decefdb79d6 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-17 309
static const u64 headroom = EFI_RT_VIRTUAL_LIMIT -
197decefdb79d6 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-17 310
EFI_RT_VIRTUAL_BASE -
e69176d68d26d6 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 311
EFI_RT_VIRTUAL_SIZE;
e69176d68d26d6 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 312
u32 rnd;
e69176d68d26d6 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 313
cd33a5c1d53e43 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 314
status = efi_get_random_bytes(sizeof(rnd), (u8 *)&rnd);
e69176d68d26d6 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 315
if (status == EFI_SUCCESS) {
e69176d68d26d6 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 316
virtmap_base = EFI_RT_VIRTUAL_BASE +
e69176d68d26d6 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 317
(((headroom >> 21) * rnd) >> (32 - 21));
e69176d68d26d6 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 318
}
e69176d68d26d6 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 319
}
e69176d68d26d6 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2017-04-04 320
cd33a5c1d53e43 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 321
install_memreserve_table();
b844470f22061e drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2018-09-21 322
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 323
status = allocate_new_fdt_and_exit_boot(handle, &fdt_addr,
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 324
efi_get_max_fdt_addr(dram_base),
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 325
initrd_addr, initrd_size,
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 326
cmdline_ptr, fdt_addr, fdt_size);
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 327
if (status != EFI_SUCCESS)
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 328
goto fail_free_initrd;
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 329
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 330
efi_enter_kernel(image_addr, fdt_addr, fdt_totalsize((void *)fdt_addr));
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 331
/* not reached */
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 332
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 333
fail_free_initrd:
8173ec7905b5b0 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 334
pr_efi_err("Failed to update FDT and exit boot services\n");
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 335
cd33a5c1d53e43 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 336
efi_free(initrd_size, initrd_addr);
cd33a5c1d53e43 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 337
efi_free(fdt_size, fdt_addr);
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 338
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 339
fail_free_image:
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 340
efi_free(image_size, image_addr);
cd33a5c1d53e43 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 341
efi_free(reserve_size, reserve_addr);
2b5fe07a78a09a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2016-01-26 342
fail_free_cmdline:
cd33a5c1d53e43 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 343
free_screen_info(si);
cd33a5c1d53e43 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2019-12-24 344
efi_free(cmdline_size, (unsigned long)cmdline_ptr);
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 345
fail:
9f9223778ef385 drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2020-02-17 346
return status;
3c7f255039a2ad drivers/firmware/efi/arm-stub.c Mark Salter 2014-04-15 347 }
f3cdfd239da56a drivers/firmware/efi/libstub/arm-stub.c Ard Biesheuvel 2014-10-20 348
:::::: The code at line 148 was first introduced by commit
:::::: 9f9223778ef385e79dc67f5ee48ee4c1fb757f6b efi/libstub/arm: Make efi_entry() an
ordinary PE/COFF entrypoint
:::::: TO: Ard Biesheuvel <ardb(a)kernel.org>
:::::: CC: Ard Biesheuvel <ardb(a)kernel.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org