summaryrefslogtreecommitdiff
path: root/arch/arm/include/asm/global_data.h
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2025-06-13 16:57:34 -0600
committerTom Rini <trini@konsulko.com>2025-06-13 16:57:34 -0600
commit2556caa89caba6c3d4df7910828119bc65beb1f0 (patch)
tree1381f1957105fca50895e85b74101adcd75f6f6f /arch/arm/include/asm/global_data.h
parentf73450918d66565c5efacf2bb57227ba94bdaa40 (diff)
parentae86cd8c59fe08c9a37d14dbd6e42190dda2a0d4 (diff)
Merge patch series "drop volatile from global data"
Rasmus Villemoes <ravi@prevas.dk> says: There's really no reason for the gd pointer to have the volatile qualifier. In fact, I claim that it's completely unnecessary and just pessimizes code generation and forces ugly casts in lots of places. For example, see the casts in drivers/core/tag.c where elements are added to gd->dm_taglist, or a helper such as cyclic_get_list() that should not be needed. Also, it is what ends up standing in the way of an otherwise innocent code cleanup of list.h: https://lore.kernel.org/u-boot/20250522165656.GB2179216@bill-the-cat/ Note that riscv, x86 as well as arm64 with LTO enabled has not had this volatile qualifier, so it's unlikely there's any generic code that depends on it. Link: https://lore.kernel.org/r/20250604195612.2312979-1-ravi@prevas.dk
Diffstat (limited to 'arch/arm/include/asm/global_data.h')
-rw-r--r--arch/arm/include/asm/global_data.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/arm/include/asm/global_data.h b/arch/arm/include/asm/global_data.h
index 45401d5e3c8..b2ec450f900 100644
--- a/arch/arm/include/asm/global_data.h
+++ b/arch/arm/include/asm/global_data.h
@@ -133,13 +133,13 @@ static inline gd_t *get_gd(void)
#else
#ifdef CONFIG_ARM64
-#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("x18")
+#define DECLARE_GLOBAL_DATA_PTR register gd_t *gd asm ("x18")
#else
-#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r9")
+#define DECLARE_GLOBAL_DATA_PTR register gd_t *gd asm ("r9")
#endif
#endif
-static inline void set_gd(volatile gd_t *gd_ptr)
+static inline void set_gd(gd_t *gd_ptr)
{
#ifdef CONFIG_ARM64
__asm__ volatile("ldr x18, %0\n" : : "m"(gd_ptr));