mirror-linux/arch/mips
Linus Torvalds f1c538ca81 Updates for the VDSO subsystem:
- Provide the missing 64-bit variant of clock_getres()
 
     This allows the extension of CONFIG_COMPAT_32BIT_TIME to the vDSO and
     finally the removal of 32-bit time types from the kernel and UAPI.
 
   - Remove the useless and broken getcpu_cache from the VDSO
 
     The intention was to provide a trivial way to retrieve the CPU number from
     the VDSO, but as the VDSO data is per process there is no way to make it
     work.
 
   - Switch get/put_unaligned() from packed struct to memcpy()
 
     The packed struct violates strict aliasing rules which requires to pass
     -fno-strict-aliasing to the compiler. As this are scalar values
     __builtin_memcpy() turns them into simple loads and stores
 
   - Use __typeof_unqual__() for __unqual_scalar_typeof()
 
     The get/put_unaligned() changes triggered a new sparse warning when __beNN
     types are used with get/put_unaligned() as sparse builds add a special
     'bitwise' attribute to them which prevents sparse to evaluate the Generic
     in __unqual_scalar_typeof().
 
     Newer sparse versions support __typeof_unqual__() which avoids the problem,
     but requires a recent sparse install. So this adds a sanity check to sparse
     builds, which validates that sparse is available and capable of handling it.
 
   - Force inline __cvdso_clock_getres_common()
 
     Compilers sometimes un-inline agressively, which results in function call
     overhead and problems with automatic stack variable initialization.
 
     Interestingly enough the force inlining results in smaller code than the
     un-inlined variant produced by GCC when optimizing for size.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmmJ2eAQHHRnbHhAa2Vy
 bmVsLm9yZwAKCRCmGPVMDXSYoXhQD/4mjneVlRBbQ6Nt9LxxhzPlYXvED6u8b4SX
 R//DQ4qqqagh2fSpE57tr3f56HqhUmXptGJSgEvr6tVKoyugsLqP6sN9J9J3o181
 jnPQR0VBP9dihQZ5X93pKo9NZWxLIn0uLD0RsdCbE9NTx4ciw4VIPFYQqkC4Rw6b
 jiRrDR2l8EhV8cmxB6puW5WaQ932M6Awabw9RumzwH3MzIIlbc5Ero51S9eS64LL
 byU5XeWUe295W1Gxze5RHHJWyNQEyx1eUCFfe3LWvfpz7FMzc2AQsKnIJDzW3GiO
 UGu5MGptbLpG+ccvhVEs6/Ls5pWXcoCw4WuDNAunCCOmqda98oDniKf2LwRRbLT0
 nAfLNatMnhXdTPk2zbS45z9uipUQAGKmVAE3/LVqB+ekcutmIGMyqHgR75QX0b4l
 CQPkC9rBsV6gGsScWTnhRydhqioNO/uhhrQv0vEXnKZa0ysTbgZKt3JDZbgUEL2B
 uDxXKyrqjpnqDZKlMMaoLtwd+l+T80ya4/NhHd4ZNGUpTUrHVw2H47lgE7ahCxEk
 /SvXTZSU4Jp8sVQIQ+J6y5z2AQ/xGy++zvNKiZMyP9fQuPqhiDqYkLpmOp61bARx
 wqyVsfGXZYSB1l16AiSC/CyUDcMqqsFohGXQ/Yf0SOiVtXu2WUyfofY1N0IXIGu4
 WOVV9mH1yg==
 =0ogX
 -----END PGP SIGNATURE-----

Merge tag 'timers-vdso-2026-02-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull VDSO updates from Thomas Gleixner:

 - Provide the missing 64-bit variant of clock_getres()

   This allows the extension of CONFIG_COMPAT_32BIT_TIME to the vDSO and
   finally the removal of 32-bit time types from the kernel and UAPI.

 - Remove the useless and broken getcpu_cache from the VDSO

   The intention was to provide a trivial way to retrieve the CPU number
   from the VDSO, but as the VDSO data is per process there is no way to
   make it work.

 - Switch get/put_unaligned() from packed struct to memcpy()

   The packed struct violates strict aliasing rules which requires to
   pass -fno-strict-aliasing to the compiler. As this are scalar values
   __builtin_memcpy() turns them into simple loads and stores

 - Use __typeof_unqual__() for __unqual_scalar_typeof()

   The get/put_unaligned() changes triggered a new sparse warning when
   __beNN types are used with get/put_unaligned() as sparse builds add a
   special 'bitwise' attribute to them which prevents sparse to evaluate
   the Generic in __unqual_scalar_typeof().

   Newer sparse versions support __typeof_unqual__() which avoids the
   problem, but requires a recent sparse install. So this adds a sanity
   check to sparse builds, which validates that sparse is available and
   capable of handling it.

 - Force inline __cvdso_clock_getres_common()

   Compilers sometimes un-inline agressively, which results in function
   call overhead and problems with automatic stack variable
   initialization.

   Interestingly enough the force inlining results in smaller code than
   the un-inlined variant produced by GCC when optimizing for size.

* tag 'timers-vdso-2026-02-09' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  vdso/gettimeofday: Force inlining of __cvdso_clock_getres_common()
  x86/percpu: Make CONFIG_USE_X86_SEG_SUPPORT work with sparse
  compiler: Use __typeof_unqual__() for __unqual_scalar_typeof()
  powerpc/vdso: Provide clock_getres_time64()
  tools headers: Remove unneeded ignoring of warnings in unaligned.h
  tools headers: Update the linux/unaligned.h copy with the kernel sources
  vdso: Switch get/put_unaligned() from packed struct to memcpy()
  parisc: Inline a type punning version of get_unaligned_le32()
  vdso: Remove struct getcpu_cache
  MIPS: vdso: Provide getres_time64() for 32-bit ABIs
  arm64: vdso32: Provide clock_getres_time64()
  ARM: VDSO: Provide clock_getres_time64()
  ARM: VDSO: Patch out __vdso_clock_getres() if unavailable
  x86/vdso: Provide clock_getres_time64() for x86-32
  selftests: vDSO: vdso_test_abi: Add test for clock_getres_time64()
  selftests: vDSO: vdso_test_abi: Use UAPI system call numbers
  selftests: vDSO: vdso_config: Add configurations for clock_getres_time64()
  vdso: Add prototype for __vdso_clock_getres_time64()
2026-02-10 17:02:23 -08:00
..
alchemy MIPS: Alchemy: Remove bogus static/inline specifiers 2025-12-15 16:09:46 +01:00
ath25 MIPS: Switch to irq_domain_create_*() 2025-05-16 21:06:10 +02:00
ath79
bcm47xx MIPS: BCM47XX: remove creating a fixed phy 2025-11-04 18:46:13 -08:00
bcm63xx treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
bmips
boot MIPS: dts: Always descend vendor subdirectories 2025-12-01 10:06:16 +01:00
cavium-octeon - switch longson32 platform to DT and use MIPS_GENERIC framework 2025-10-05 10:09:55 -07:00
cobalt
configs sound fixes for 6.19-rc1 2025-12-13 16:09:10 +12:00
crypto lib/crypto: mips/md5: Migrate optimized code into library 2025-08-26 12:52:28 -04:00
dec MIPS: dec: Declare which_prom() as static 2025-02-27 10:40:45 +01:00
econet mips: dts: Add EcoNet DTS with EN751221 and SmartFiber XP8421-B board 2025-05-20 08:47:07 +02:00
fw MIPS: arc: Replace deprecated strcpy() with memcpy() 2025-08-29 22:34:30 +02:00
generic MIPS: generic: Replace deprecated strcpy() in ocelot_detect() 2025-08-29 22:34:30 +02:00
include Updates for the interrupt core subsystem: 2026-02-10 13:39:37 -08:00
ingenic
jazz MIPS/jazzdma: Provide physical address directly 2025-10-29 10:27:30 +01:00
kernel Updates for the interrupt core subsystem: 2026-02-10 13:39:37 -08:00
kvm just cleanups and fixes 2025-12-10 06:20:22 +09:00
lantiq mips: lantiq: xway: sysctrl: rename stp clock 2025-08-29 22:34:30 +02:00
lib Crypto library updates for 6.17 2025-07-28 17:58:52 -07:00
loongson2ef MIPS: Loongson2ef: Replace deprecated strncpy() with strscpy() 2025-02-27 10:40:01 +01:00
loongson32 MIPS: loongson32: Switch to generic core 2025-08-29 22:34:31 +02:00
loongson64 MIPS: Loongson64: Replace deprecated strcpy() with strscpy_pad() 2025-08-29 22:34:30 +02:00
math-emu mips: math-emu: replace deprecated strcpy() in me-debugfs 2025-09-12 11:56:06 +02:00
mm mips: fix HIGHMEM initialization 2026-01-14 22:16:22 -08:00
mobileye
mti-malta MIPS: Malta: Fix !EVA SOC-it PCI MMIO 2025-11-11 12:58:49 +01:00
n64
net
pci soc: driver updates for 6.19 2025-12-05 17:29:04 -08:00
pic32
power
ralink MIPS: ralink: add missing header include 2025-07-02 13:23:01 +02:00
rb532 MIPS: RB532: Replace deprecated strcpy() with memcpy() and strscpy() 2025-08-29 22:34:30 +02:00
sgi-ip22 MIPS: Fix a reference leak bug in ip22_check_gio() 2025-12-15 16:11:14 +01:00
sgi-ip27 MIPS: Move IP27 timer to request_percpu_irq() 2025-12-15 22:20:50 +01:00
sgi-ip30 MIPS: Move IP30 timer to request_percpu_irq() 2025-12-15 22:20:50 +01:00
sgi-ip32 MIPS: sgi-ip32: Replace deprecated strcpy() in plat_mem_setup() 2025-08-29 22:34:30 +02:00
sibyte
sni MIPS: sni: Replace deprecated strcpy() in sni_console_setup() 2025-08-29 22:34:30 +02:00
tools
txx9 MIPS: txx9: Replace deprecated strcpy() with strscpy() 2025-08-29 22:34:30 +02:00
vdso MIPS: vdso: Provide getres_time64() for 32-bit ABIs 2026-01-13 14:42:23 +01:00
Kbuild
Kbuild.platforms mips: Add EcoNet MIPS platform support 2025-05-20 08:46:58 +02:00
Kconfig MIPS: Fix HOTPLUG_PARALLEL dependency 2025-12-01 10:04:21 +01:00
Kconfig.debug
Makefile kbuild: Introduce Kconfig symbol for linking vmlinux with relocations 2025-03-17 00:29:50 +09:00
Makefile.postlink kbuild: Create intermediate vmlinux build with relocations preserved 2025-03-17 00:29:50 +09:00