mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-05-09 14:46:13 +02:00
efi_loader: access __efi_runtime_rel_start/stop without &
A symbol defined in a linker script (e.g. __efi_runtime_rel_start = .;) is only a symbol, not a variable and should not be dereferenced. The common practice is either define it as extern uint32_t __efi_runtime_rel_start or extern char __efi_runtime_rel_start[] and access it as &__efi_runtime_rel_start or __efi_runtime_rel_start respectively. So let's access it properly since we define it as an array Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
This commit is contained in:
parent
c16248464f
commit
3f8d13044b
@ -669,14 +669,14 @@ static __efi_runtime void efi_relocate_runtime_table(ulong offset)
|
||||
void efi_runtime_relocate(ulong offset, struct efi_mem_desc *map)
|
||||
{
|
||||
#ifdef IS_RELA
|
||||
struct elf_rela *rel = (void*)&__efi_runtime_rel_start;
|
||||
struct elf_rela *rel = (void *)__efi_runtime_rel_start;
|
||||
#else
|
||||
struct elf_rel *rel = (void*)&__efi_runtime_rel_start;
|
||||
struct elf_rel *rel = (void *)__efi_runtime_rel_start;
|
||||
static ulong lastoff = CONFIG_TEXT_BASE;
|
||||
#endif
|
||||
|
||||
debug("%s: Relocating to offset=%lx\n", __func__, offset);
|
||||
for (; (ulong)rel < (ulong)&__efi_runtime_rel_stop; rel++) {
|
||||
for (; (uintptr_t)rel < (uintptr_t)__efi_runtime_rel_stop; rel++) {
|
||||
ulong base = CONFIG_TEXT_BASE;
|
||||
ulong *p;
|
||||
ulong newaddr;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user