diff options
author | Tom Rini <trini@konsulko.com> | 2025-06-13 16:57:34 -0600 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2025-06-13 16:57:34 -0600 |
commit | 2556caa89caba6c3d4df7910828119bc65beb1f0 (patch) | |
tree | 1381f1957105fca50895e85b74101adcd75f6f6f /arch/arm/include/asm/global_data.h | |
parent | f73450918d66565c5efacf2bb57227ba94bdaa40 (diff) | |
parent | ae86cd8c59fe08c9a37d14dbd6e42190dda2a0d4 (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.h | 6 |
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)); |