forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-02-20 ea08eeccae9297f7aabd2ef7f0c2517ac4549acc
kernel/drivers/firmware/efi/esrt.c
....@@ -1,3 +1,4 @@
1
+// SPDX-License-Identifier: GPL-2.0+
12 /*
23 * esrt.c
34 *
....@@ -239,11 +240,13 @@
239240 {
240241 void *va;
241242 struct efi_system_resource_table tmpesrt;
242
- struct efi_system_resource_entry_v1 *v1_entries;
243243 size_t size, max, entry_size, entries_size;
244244 efi_memory_desc_t md;
245245 int rc;
246246 phys_addr_t end;
247
+
248
+ if (!efi_enabled(EFI_MEMMAP))
249
+ return;
247250
248251 pr_debug("esrt-init: loading.\n");
249252 if (!esrt_table_exists())
....@@ -284,14 +287,13 @@
284287 memcpy(&tmpesrt, va, sizeof(tmpesrt));
285288 early_memunmap(va, size);
286289
287
- if (tmpesrt.fw_resource_version == 1) {
288
- entry_size = sizeof (*v1_entries);
289
- } else {
290
+ if (tmpesrt.fw_resource_version != 1) {
290291 pr_err("Unsupported ESRT version %lld.\n",
291292 tmpesrt.fw_resource_version);
292293 return;
293294 }
294295
296
+ entry_size = sizeof(struct efi_system_resource_entry_v1);
295297 if (tmpesrt.fw_resource_count > 0 && max - size < entry_size) {
296298 pr_err("ESRT memory map entry can only hold the header. (max: %zu size: %zu)\n",
297299 max - size, entry_size);