mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 12:21:22 -05:00
x86/boot: Revert "Reject absolute references in .head.text"
This reverts commit
faf0ed4874 ("x86/boot: Reject absolute references in .head.text")
The startup code is checked directly for the absence of absolute symbol
references, so checking the .head.text section in the relocs tool is no
longer needed.
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Link: https://lore.kernel.org/20250828102202.1849035-41-ardb+git@google.com
This commit is contained in:
committed by
Borislav Petkov (AMD)
parent
296650c8ac
commit
2578560d22
@@ -740,10 +740,10 @@ static void walk_relocs(int (*process)(struct section *sec, Elf_Rel *rel,
|
||||
static int do_reloc64(struct section *sec, Elf_Rel *rel, ElfW(Sym) *sym,
|
||||
const char *symname)
|
||||
{
|
||||
int headtext = !strcmp(sec_name(sec->shdr.sh_info), ".head.text");
|
||||
unsigned r_type = ELF64_R_TYPE(rel->r_info);
|
||||
ElfW(Addr) offset = rel->r_offset;
|
||||
int shn_abs = (sym->st_shndx == SHN_ABS) && !is_reloc(S_REL, symname);
|
||||
|
||||
if (sym->st_shndx == SHN_UNDEF)
|
||||
return 0;
|
||||
|
||||
@@ -783,12 +783,6 @@ static int do_reloc64(struct section *sec, Elf_Rel *rel, ElfW(Sym) *sym,
|
||||
break;
|
||||
}
|
||||
|
||||
if (headtext) {
|
||||
die("Absolute reference to symbol '%s' not permitted in .head.text\n",
|
||||
symname);
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* Relocation offsets for 64 bit kernels are output
|
||||
* as 32 bits and sign extended back to 64 bits when
|
||||
|
||||
Reference in New Issue
Block a user