From: Paul Walmsley <pjw@kernel.org>
To: torvalds@linux-foundation.org
Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: [GIT PULL] RISC-V updates for v7.2-rc4
Date: Sun, 19 Jul 2026 10:47:00 -0600 (MDT) [thread overview]
Message-ID: <ad692ed9-a217-5d59-3bbf-fdd7649056ba@kernel.org> (raw)
[-- Attachment #1: Type: text/plain, Size: 7412 bytes --]
Linus,
Please pull these RISC-V updates for v7.2-rc4. From a maintenance
perspective, there's a change in common code to now call
flush_cache_vmap() after setting up new vmemmap pages on configs using
CONFIG_SPARSEMEM_VMEMMAP. This is to avoid spurious faults on
microarchitectures that support caching PTEs marked non-present, such as
RISC-V and PowerPC.
Otherwise, not much to note. In the event you notice a significant kernel
size reduction on RISC-V (below), it comes from a fix to relax function
alignment constraints when dynamic ftrace is disabled.
thanks,
- Paul
The following changes since commit a13c140cc289c0b7b3770bce5b3ad42ab35074aa:
Linux 7.2-rc3 (2026-07-12 14:16:39 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux tags/riscv-for-linus-7.2-rc4
for you to fetch changes up to 5caae1deee89a6582c761d5dcd4b924b744426cc:
riscv: hwprobe: Avoid uninitialized read in hwprobe_get_cpus() (2026-07-15 11:12:40 -0600)
----------------------------------------------------------------
RISC-V updates for v7.2-rc4
- Call flush_cache_vmap() after populating new vmemmap pages, on all
architectures. This avoids spurious faults on RISC-V
microarchitectures that cache PTEs marked as non-present
- Disable LTO for the vDSO to prevent the compiler from eliding
functions that are used, but which don't appear to be
- Fix an issue with libgcc's unwinder and signal handlers by dropping
an unnecessary CFI landing pad instruction in __vdso_rt_sigreturn
(similar to what was done on ARM64)
- Avoid reading uninitialized memory under certain conditions in
hwprobe_get_cpus()
- Save some memory and I$ when CONFIG_DYNAMIC_FTRACE=n by avoiding
our four-byte function alignment requirement in that case
- Avoid clang warnings about null-pointer arithmetic in the I/O-port
accessor macros (inb, outb, etc.) by ifdeffing them out when
!CONFIG_HAS_IOPORT
- Make the build of the lazy TLB flushing code in the vmalloc path
depend on CONFIG_64BIT and CONFIG_MMU (since those platforms are the
only ones that use it)
----------------------------------------------------------------
Aurelien Jarno (1):
arch/riscv: vdso: remove CFI landing pad from rt_sigreturn
Mark Harris (1):
riscv: hwprobe: Avoid uninitialized read in hwprobe_get_cpus()
Rui Qi (1):
riscv: Gate FUNCTION_ALIGNMENT_4B on DYNAMIC_FTRACE
Thomas Weißschuh (1):
riscv: vdso: Do not use LTO for the vDSO
Vivian Wang (2):
riscv: mm: Make mark_new_valid_map() stuff depend on 64BIT && MMU
mm/sparse-vmemmap: flush_cache_vmap() after hotplugging vmemmap
Yunhui Cui (1):
riscv: io: avoid null-pointer arithmetic in PIO helpers
arch/riscv/Kconfig | 2 +-
arch/riscv/include/asm/cacheflush.h | 5 +++--
arch/riscv/include/asm/io.h | 8 ++++++++
arch/riscv/kernel/entry.S | 2 +-
arch/riscv/kernel/sys_hwprobe.c | 1 +
arch/riscv/kernel/vdso/Makefile | 6 +++---
arch/riscv/kernel/vdso/rt_sigreturn.S | 10 +++++++++-
arch/riscv/mm/init.c | 2 ++
mm/sparse-vmemmap.c | 2 ++
9 files changed, 30 insertions(+), 8 deletions(-)
vmlinux size differences in bytes (from a13c140cc289):
text data bss dec hex filename
-52032 +96 . -51936 -cae0 vmlinux.defconfig.gcc-16
-55224 -4000 . -59224 -e758 vmlinux.nosmp_defconfig.gcc-16
-51598 +96 -64 -51566 -c96e vmlinux.rv32_defconfig.gcc-16
-49942 +96 . -49846 -c2b6 vmlinux.rv32_nosmp_defconfig.gcc-16
-175 +64 . -111 -6f vmlinux.nommu_virt_defconfig.gcc-16
-47958 +96 . -47862 -baf6 vmlinux.defconfig.clang-20
-45794 -4000 . -49794 -c282 vmlinux.nosmp_defconfig.clang-20
-48052 +64 . -47988 -bb74 vmlinux.rv32_defconfig.clang-20
-46754 +96 . -46658 -b642 vmlinux.rv32_nosmp_defconfig.clang-20
-179 . -64 -243 -f3 vmlinux.nommu_virt_defconfig.clang-20
-51822 +64 . -51758 -ca2e vmlinux.defconfig.gcc-15
-54878 +64 . -54814 -d61e vmlinux.nosmp_defconfig.gcc-15
-51306 +96 -64 -51274 -c84a vmlinux.rv32_defconfig.gcc-15
-49928 +64 . -49864 -c2c8 vmlinux.rv32_nosmp_defconfig.gcc-15
-175 . . -175 -af vmlinux.nommu_virt_defconfig.gcc-15
-51546 -4000 . -55546 -d8fa vmlinux.defconfig.gcc-14
-54146 +64 . -54082 -d342 vmlinux.nosmp_defconfig.gcc-14
-50974 +64 -64 -50974 -c71e vmlinux.rv32_defconfig.gcc-14
-49990 +96 . -49894 -c2e6 vmlinux.rv32_nosmp_defconfig.gcc-14
-171 . . -171 -ab vmlinux.nommu_virt_defconfig.gcc-14
-48012 +128 . -47884 -bb0c vmlinux.defconfig.clang-19
-46590 +96 . -46494 -b59e vmlinux.nosmp_defconfig.clang-19
-47570 +64 . -47506 -b992 vmlinux.rv32_defconfig.clang-19
-46914 +64 . -46850 -b702 vmlinux.rv32_nosmp_defconfig.clang-19
-179 +64 . -115 -73 vmlinux.nommu_virt_defconfig.clang-19
+1340 +64 . +1404 +57c vmlinux.defconfig.gcc-13
+1380 +64 . +1444 +5a4 vmlinux.nosmp_defconfig.gcc-13
+16 +64 -64 +16 +10 vmlinux.rv32_defconfig.gcc-13
. +64 . +64 +40 vmlinux.rv32_nosmp_defconfig.gcc-13
-171 +64 -64 -171 -ab vmlinux.nommu_virt_defconfig.gcc-13
-48100 -4000 . -52100 -cb84 vmlinux.defconfig.clang-18
-46248 +96 . -46152 -b448 vmlinux.nosmp_defconfig.clang-18
-47328 +96 . -47232 -b880 vmlinux.rv32_defconfig.clang-18
-46848 +96 . -46752 -b6a0 vmlinux.rv32_nosmp_defconfig.clang-18
-179 . . -179 -b3 vmlinux.nommu_virt_defconfig.clang-18
+1272 +64 . +1336 +538 vmlinux.defconfig.gcc-12
+1360 +64 . +1424 +590 vmlinux.nosmp_defconfig.gcc-12
+8 +96 -64 +40 +28 vmlinux.rv32_defconfig.gcc-12
. +96 . +96 +60 vmlinux.rv32_nosmp_defconfig.gcc-12
-171 +64 -64 -171 -ab vmlinux.nommu_virt_defconfig.gcc-12
-51446 +96 . -51350 -c896 vmlinux.defconfig.clang-17
-46236 +96 . -46140 -b43c vmlinux.nosmp_defconfig.clang-17
-47106 +64 . -47042 -b7c2 vmlinux.rv32_defconfig.clang-17
-46356 +96 . -46260 -b4b4 vmlinux.rv32_nosmp_defconfig.clang-17
-179 +64 . -115 -73 vmlinux.nommu_virt_defconfig.clang-17
+1276 +64 . +1340 +53c vmlinux.defconfig.gcc-11
+1396 +64 . +1460 +5b4 vmlinux.nosmp_defconfig.gcc-11
+16 +96 -64 +48 +30 vmlinux.rv32_defconfig.gcc-11
. +64 . +64 +40 vmlinux.rv32_nosmp_defconfig.gcc-11
-155 . -64 -219 -db vmlinux.nommu_virt_defconfig.gcc-11
-13158 -4096 . -17254 -4366 vmlinux.allnoconfig.gcc-15
+40288 +2908 -128 +43068 +a83c vmlinux.allmodconfig.gcc-15
-11930 +12288 . +358 +166 vmlinux.allnoconfig.clang-19
+3980 +856 . +4836 +12e4 vmlinux.allmodconfig.clang-19
[-- Attachment #2: Type: text/plain, Size: 161 bytes --]
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next reply other threads:[~2026-07-19 16:47 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-19 16:47 Paul Walmsley [this message]
2026-07-19 19:57 ` [GIT PULL] RISC-V updates for v7.2-rc4 pr-tracker-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ad692ed9-a217-5d59-3bbf-fdd7649056ba@kernel.org \
--to=pjw@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox