[PATCH 00/12] drop volatile from global data
Rasmus Villemoes
ravi at prevas.dk
Wed Jun 4 21:56:00 CEST 2025
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.
CI seems mostly happy:
https://github.com/u-boot/u-boot/pull/775/checks?check_run_id=43463083829
The one failing test seems to be an infrastructure thing unrelated to
these patches ("docker: filesystem layer verification failed for
digest
sha256:379cc6cd06dc3fc80e31d5170204c0cfcc25cb3b3ad457ced23bed2b38ec9f36")
Rasmus Villemoes (12):
arm: drop volatile qualifier from gd pointer
powerpc: drop volatile qualifier from gd pointer
mips: drop volatile qualifier from gd pointer
microblaze: drop volatile qualifier from gd pointer
m68k: drop volatile qualifier from gd pointer
m68k: drop pointless #if 0 block
arc: drop volatile qualifier from gd pointer
arm: imx: remove unnecessary volatile qualifiers from "save gd"
variables
efi: drop volatile qualifier from "save gd" variables
lib/trace: drop volatile qualifier from "save gd" variables
arm: remove volatile from set_gd prototype
riscv: remove volatile from set_gd prototype
arch/arc/include/asm/global_data.h | 2 +-
arch/arm/include/asm/global_data.h | 6 +++---
arch/arm/mach-imx/hab.c | 2 +-
arch/arm/mach-imx/imx9/scmi/soc.c | 4 ++--
arch/arm/mach-imx/romapi.c | 6 +++---
arch/m68k/include/asm/global_data.h | 7 +------
arch/microblaze/include/asm/global_data.h | 2 +-
arch/mips/include/asm/global_data.h | 2 +-
arch/powerpc/include/asm/global_data.h | 2 +-
arch/riscv/include/asm/global_data.h | 2 +-
lib/efi_loader/efi_boottime.c | 2 +-
lib/trace.c | 4 ++--
12 files changed, 18 insertions(+), 23 deletions(-)
--
2.49.0
More information about the U-Boot
mailing list