diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig index e7fea344b07a..3b4d487e0ae3 100644 --- a/arch/loongarch/Kconfig +++ b/arch/loongarch/Kconfig @@ -592,7 +592,6 @@ config ARCH_SELECTS_CRASH_DUMP config RELOCATABLE bool "Relocatable kernel" - select ARCH_HAS_RELR help This builds the kernel as a Position Independent Executable (PIE), which retains all relocation metadata required, so as to relocate diff --git a/arch/loongarch/include/asm/asmmacro.h b/arch/loongarch/include/asm/asmmacro.h index 8d7f501b0a12..655db7d7a427 100644 --- a/arch/loongarch/include/asm/asmmacro.h +++ b/arch/loongarch/include/asm/asmmacro.h @@ -609,7 +609,6 @@ lu32i.d \reg, 0 lu52i.d \reg, \reg, 0 .pushsection ".la_abs", "aw", %progbits - .p2align 3 .dword 766b .dword \sym .popsection diff --git a/arch/loongarch/include/asm/setup.h b/arch/loongarch/include/asm/setup.h index 3c2fb16b11b6..ee52fb1e9963 100644 --- a/arch/loongarch/include/asm/setup.h +++ b/arch/loongarch/include/asm/setup.h @@ -34,11 +34,6 @@ extern long __la_abs_end; extern long __rela_dyn_begin; extern long __rela_dyn_end; -#ifdef CONFIG_RELR -extern long __relr_dyn_begin; -extern long __relr_dyn_end; -#endif - extern unsigned long __init relocate_kernel(void); #endif diff --git a/arch/loongarch/kernel/relocate.c b/arch/loongarch/kernel/relocate.c index 614c447c8984..d142061c61d4 100644 --- a/arch/loongarch/kernel/relocate.c +++ b/arch/loongarch/kernel/relocate.c @@ -40,24 +40,6 @@ static inline void __init relocate_relative(void) *(Elf64_Addr *)RELOCATED(addr) = relocated_addr; } - -#ifdef CONFIG_RELR - u64 *addr = NULL; - u64 *relr = (u64 *)&__relr_dyn_begin; - u64 *relr_end = (u64 *)&__relr_dyn_end; - - for ( ; relr < relr_end; relr++) { - if ((*relr & 1) == 0) { - addr = (u64 *)(*relr + reloc_offset); - *addr++ += reloc_offset; - } else { - for (u64 *p = addr, r = *relr >> 1; r; p++, r >>= 1) - if (r & 1) - *p += reloc_offset; - addr += 63; - } - } -#endif } static inline void __init relocate_absolute(long random_offset) diff --git a/arch/loongarch/kernel/vmlinux.lds.S b/arch/loongarch/kernel/vmlinux.lds.S index 08ea921cdec1..3c7595342730 100644 --- a/arch/loongarch/kernel/vmlinux.lds.S +++ b/arch/loongarch/kernel/vmlinux.lds.S @@ -113,14 +113,6 @@ SECTIONS __rela_dyn_end = .; } -#ifdef CONFIG_RELR - .relr.dyn : ALIGN(8) { - __relr_dyn_begin = .; - *(.relr.dyn) - __relr_dyn_end = .; - } -#endif - .data.rel : { *(.data.rel*) } #ifdef CONFIG_RELOCATABLE