summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
authorThomas Weißschuh <thomas.weissschuh@linutronix.de>2026-01-14 08:28:14 +0100
committerArnd Bergmann <arnd@arndb.de>2026-01-30 16:46:17 +0100
commit49d7819aa9b0b494d140ae28789b1190acdb9032 (patch)
tree8f4cbeaaa363a3bb6cb65f52e6a202a22de39271 /arch/arm
parentb4171fd0b091072f403b66bf05d01051d4bd94d9 (diff)
ARM: uapi: Drop PSR_ENDSTATE
The symbol PSR_ENDSTATE is pointless for userspace. Drop it from the UAPI headers and instead inline it into the only two callers. As as side-effect, remove a leak of an internal kconfig symbol through the UAPI headers. Suggested-by: Arnd Bergmann <arnd@arndb.de> Link: https://lore.kernel.org/lkml/d2ad12f2-3d65-4bef-890c-65d78a33d790@app.fastmail.com/ Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/include/asm/processor.h3
-rw-r--r--arch/arm/include/uapi/asm/ptrace.h9
-rw-r--r--arch/arm/kernel/signal.c3
3 files changed, 4 insertions, 11 deletions
diff --git a/arch/arm/include/asm/processor.h b/arch/arm/include/asm/processor.h
index 326864f79d18..bba83228bc22 100644
--- a/arch/arm/include/asm/processor.h
+++ b/arch/arm/include/asm/processor.h
@@ -73,7 +73,8 @@ static inline void arch_thread_struct_whitelist(unsigned long *offset,
regs->ARM_cpsr = USR26_MODE; \
if (elf_hwcap & HWCAP_THUMB && pc & 1) \
regs->ARM_cpsr |= PSR_T_BIT; \
- regs->ARM_cpsr |= PSR_ENDSTATE; \
+ if (IS_ENABLED(CONFIG_CPU_ENDIAN_BE8)) \
+ regs->ARM_cpsr |= PSR_E_BIT; \
regs->ARM_pc = pc & ~1; /* pc */ \
regs->ARM_sp = sp; /* sp */ \
})
diff --git a/arch/arm/include/uapi/asm/ptrace.h b/arch/arm/include/uapi/asm/ptrace.h
index 8896c23ccba7..2ef917957005 100644
--- a/arch/arm/include/uapi/asm/ptrace.h
+++ b/arch/arm/include/uapi/asm/ptrace.h
@@ -102,15 +102,6 @@
#define PSR_IT_MASK 0x0600fc00 /* If-Then execution state mask */
#define PSR_ENDIAN_MASK 0x00000200 /* Endianness state mask */
-/*
- * Default endianness state
- */
-#ifdef CONFIG_CPU_ENDIAN_BE8
-#define PSR_ENDSTATE PSR_E_BIT
-#else
-#define PSR_ENDSTATE 0
-#endif
-
/*
* These are 'magic' values for PTRACE_PEEKUSR that return info about where a
* process is located in memory.
diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
index 79a6730fa0eb..7be9188d83d9 100644
--- a/arch/arm/kernel/signal.c
+++ b/arch/arm/kernel/signal.c
@@ -337,7 +337,8 @@ setup_return(struct pt_regs *regs, struct ksignal *ksig,
return 1;
}
- cpsr |= PSR_ENDSTATE;
+ if (IS_ENABLED(CONFIG_CPU_ENDIAN_BE8))
+ cpsr |= PSR_E_BIT;
/*
* Maybe we need to deliver a 32-bit signal to a 26-bit task.