Hello Linus, Please pull s390 changes for 6.11. There is a conflict with the mm tree (not yet pulled as of now) which contains the KMSAN implementation for s390. Please apply the following fix-up if possible to avoid build breakage: https://lore.kernel.org/all/20240627150405.27663-1-iii@xxxxxxxxxxxxx --- arch/s390/include/asm/kmsan.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/s390/include/asm/kmsan.h b/arch/s390/include/asm/kmsan.h index 27db65fbf3f6..f73e181d09ae 100644 --- a/arch/s390/include/asm/kmsan.h +++ b/arch/s390/include/asm/kmsan.h @@ -12,8 +12,8 @@ static inline bool is_lowcore_addr(void *addr) { - return addr >= (void *)&S390_lowcore && - addr < (void *)(&S390_lowcore + 1); + return addr >= (void *)get_lowcore() && + addr < (void *)(get_lowcore() + 1); } static inline void *arch_kmsan_get_meta_or_null(void *addr, bool is_origin) @@ -25,7 +25,7 @@ static inline void *arch_kmsan_get_meta_or_null(void *addr, bool is_origin) * order to get a distinct struct page. */ addr += (void *)lowcore_ptr[raw_smp_processor_id()] - - (void *)&S390_lowcore; + (void *)get_lowcore(); if (KMSAN_WARN_ON(is_lowcore_addr(addr))) return NULL; return kmsan_get_metadata(addr, is_origin); -- Thank you, Vasily The following changes since commit c3f38fa61af77b49866b006939479069cd451173: Linux 6.10-rc2 (2024-06-02 15:44:56 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git tags/s390-6.11-1 for you to fetch changes up to df39038cd89525d465c2c8827eb64116873f141a: s390/mm: Fix VM_FAULT_HWPOISON handling in do_exception() (2024-07-17 14:30:30 +0200) ---------------------------------------------------------------- s390 updates for 6.11 merge window - Remove restrictions on PAI NNPA and crypto counters, enabling concurrent per-task and system-wide sampling and counting events - Switch to GENERIC_CPU_DEVICES by setting up the CPU present mask in the architecture code and letting the generic code handle CPU bring-up - Add support for the diag204 busy indication facility to prevent undesirable blocking during hypervisor logical CPU utilization queries. Implement results caching - Improve the handling of Store Data SCLP events by suppressing unnecessary warning, preventing buffer release in I/O during failures, and adding timeout handling for Store Data requests to address potential firmware issues - Provide optimized __arch_hweight*() implementations - Remove the unnecessary CPU KOBJ_CHANGE uevents generated during topology updates, as they are unused and also not present on other architectures - Cleanup atomic_ops, optimize __atomic_set() for small values and __atomic_cmpxchg_bool() for compilers supporting flag output constraint - Couple of cleanups for KVM: - Move and improve KVM struct definitions for DAT tables from gaccess.c to a new header - Pass the asce as parameter to sie64a() - Make the crdte() and cspg() page table handling wrappers return a boolean to indicate success, like the other existing "compare and swap" wrappers - Add documentation for HWCAP flags - Switch to obtaining total RAM pages from memblock instead of totalram_pages() during mm init, to ensure correct calculation of zero page size, when defer_init is enabled - Refactor lowcore access and switch to using the get_lowcore() function instead of the S390_lowcore macro - Cleanups for PG_arch_1 and folio handling in UV and hugetlb code - Add missing MODULE_DESCRIPTION() macros - Fix VM_FAULT_HWPOISON handling in do_exception() ---------------------------------------------------------------- Alexander Gordeev (1): s390/sclp: Define commands for storage (un)assignment Claudio Imbrenda (3): s390/pgtable: Make crdte() and cspg() return a value s390/entry: Pass the asce as parameter to sie64a() s390/kvm: Move bitfields for dat tables David Hildenbrand (10): s390/uv: Don't call folio_wait_writeback() without a folio reference s390/uv: gmap_make_secure() cleanups for further changes s390/uv: Split large folios in gmap_make_secure() s390/uv: Convert PG_arch_1 users to only work on small folios s390/uv: Update PG_arch_1 comment s390/uv: Make uv_convert_from_secure() a static function s390/uv: Convert uv_destroy_owned_page() to uv_destroy_(folio|pte)() s390/uv: Convert uv_convert_owned_from_secure() to uv_convert_from_secure_(folio|pte)() s390/uv: Implement HAVE_ARCH_MAKE_FOLIO_ACCESSIBLE s390/hugetlb: Convert PG_arch_1 code to work on folio->flags Gerald Schaefer (1): s390/mm: Fix VM_FAULT_HWPOISON handling in do_exception() Heiko Carstens (5): s390: Provide optimized __arch_hweight*() implementations s390/hwcaps: Add documentation for HWCAP flags s390/atomic_ops: Use symbolic names s390/atomic_ops: Improve __atomic_set() for small values s390/atomic_ops: Make use of flag output constraint Jeff Johnson (5): s390/crc32: Add missing MODULE_DESCRIPTION() macro s390/lib: Add missing MODULE_DESCRIPTION() macros s390/mm: Add missing MODULE_DESCRIPTION() macro s390/dcssblk: Add missing MODULE_DESCRIPTION() macro s390/3270: Add missing MODULE_DESCRIPTION() macros Mete Durlu (8): s390/topology: Remove CPU KOBJ_CHANGE uevents s390/sclp: Diag204 busy indication facility detection s390/diag: Return errno's from diag204 s390/diag: Diag204 add busy return errno s390/diag: Add busy-indication-facility requirements s390/hypfs_diag: Diag204 busy loop s390/sthyi: Move diag operations s390/sthyi: Use cached data when diag is busy Peter Oberparleiter (3): s390/sclp: Suppress unnecessary Store Data warning s390/sclp: Prevent release of buffer in I/O s390/sclp: Add timeout to Store Data requests Sven Schnelle (11): s390: Add get_lowcore() function s390: Replace S390_lowcore by get_lowcore() s390/drivers: Replace S390_lowcore by get_lowcore() s390/boot: Replace S390_lowcore by get_lowcore() s390/nmi: Remove duplicate get_lowcore() calls s390/smp: Remove duplicate get_lowcore() calls s390/vtime: Remove duplicate get_lowcore() calls s390/idle: Remove duplicate get_lowcore() calls s390/mm: Remove duplicate get_lowcore() calls s390: Remove S390_lowcore s390/smp: Switch to GENERIC_CPU_DEVICES Thomas Richter (6): s390/pai_crypto: Enable concurrent system-wide counting/sampling event s390/pai_crypto: Enable per-task counting event s390/pai_crypto: Enable per-task and system-wide sampling event s390/pai_ext: Enable concurrent system-wide counting/sampling s390/pai_ext: Enable per-task counting event s390/pai_ext: Enable per-task and system-wide sampling event Wei Yang (1): s390/mm: Get total ram pages from memblock arch/s390/Kconfig | 3 +- arch/s390/boot/ipl_parm.c | 4 +- arch/s390/boot/ipl_report.c | 2 +- arch/s390/boot/pgm_check_info.c | 18 +-- arch/s390/boot/physmem_info.c | 8 +- arch/s390/boot/startup.c | 12 +- arch/s390/boot/vmem.c | 12 +- arch/s390/crypto/crc32-vx.c | 1 + arch/s390/hypfs/hypfs_dbfs.c | 4 +- arch/s390/hypfs/hypfs_diag.c | 17 ++- arch/s390/include/asm/arch_hweight.h | 76 +++++++++++++ arch/s390/include/asm/atomic_ops.h | 84 ++++++++++---- arch/s390/include/asm/bitops.h | 3 +- arch/s390/include/asm/current.h | 2 +- arch/s390/include/asm/dat-bits.h | 170 ++++++++++++++++++++++++++++ arch/s390/include/asm/diag.h | 8 ++ arch/s390/include/asm/elf.h | 8 ++ arch/s390/include/asm/facility.h | 4 +- arch/s390/include/asm/hardirq.h | 6 +- arch/s390/include/asm/kvm_host.h | 7 +- arch/s390/include/asm/lowcore.h | 5 +- arch/s390/include/asm/mmu_context.h | 8 +- arch/s390/include/asm/page.h | 5 + arch/s390/include/asm/pai.h | 17 ++- arch/s390/include/asm/percpu.h | 2 +- arch/s390/include/asm/pgtable.h | 33 +++++- arch/s390/include/asm/preempt.h | 30 ++--- arch/s390/include/asm/processor.h | 8 +- arch/s390/include/asm/sclp.h | 1 + arch/s390/include/asm/setup.h | 34 +++--- arch/s390/include/asm/smp.h | 4 +- arch/s390/include/asm/softirq_stack.h | 2 +- arch/s390/include/asm/spinlock.h | 2 +- arch/s390/include/asm/stacktrace.h | 1 + arch/s390/include/asm/timex.h | 10 +- arch/s390/include/asm/uv.h | 12 +- arch/s390/include/asm/vtime.h | 16 ++- arch/s390/kernel/asm-offsets.c | 1 + arch/s390/kernel/diag.c | 12 +- arch/s390/kernel/dumpstack.c | 8 +- arch/s390/kernel/early.c | 36 +++--- arch/s390/kernel/entry.S | 8 +- arch/s390/kernel/idle.c | 11 +- arch/s390/kernel/irq.c | 18 +-- arch/s390/kernel/machine_kexec.c | 4 +- arch/s390/kernel/nmi.c | 31 ++--- arch/s390/kernel/perf_cpum_sf.c | 2 +- arch/s390/kernel/perf_pai_crypto.c | 189 +++++++++++++++++++------------ arch/s390/kernel/perf_pai_ext.c | 146 ++++++++++++++++-------- arch/s390/kernel/process.c | 6 +- arch/s390/kernel/setup.c | 24 ++-- arch/s390/kernel/smp.c | 88 +++++++-------- arch/s390/kernel/sthyi.c | 95 +++++++++++----- arch/s390/kernel/syscall.c | 4 +- arch/s390/kernel/time.c | 22 ++-- arch/s390/kernel/topology.c | 8 +- arch/s390/kernel/traps.c | 28 ++--- arch/s390/kernel/uv.c | 207 +++++++++++++++++++++++----------- arch/s390/kernel/vtime.c | 82 +++++++------- arch/s390/kvm/gaccess.c | 163 +------------------------- arch/s390/kvm/kvm-s390.c | 5 +- arch/s390/kvm/vsie.c | 2 +- arch/s390/lib/spinlock.c | 4 +- arch/s390/lib/test_kprobes.c | 1 + arch/s390/lib/test_modules.c | 1 + arch/s390/lib/test_unwind.c | 3 +- arch/s390/lib/uaccess.c | 4 +- arch/s390/mm/cmm.c | 1 + arch/s390/mm/dump_pagetables.c | 2 +- arch/s390/mm/fault.c | 33 +++--- arch/s390/mm/gmap.c | 16 +-- arch/s390/mm/hugetlbpage.c | 8 +- arch/s390/mm/init.c | 3 +- arch/s390/mm/pageattr.c | 2 +- arch/s390/mm/pgalloc.c | 4 +- arch/s390/pci/pci.c | 2 +- drivers/s390/block/dcssblk.c | 1 + drivers/s390/char/con3270.c | 1 + drivers/s390/char/fs3270.c | 1 + drivers/s390/char/raw3270.c | 1 + drivers/s390/char/sclp_cmd.c | 7 +- drivers/s390/char/sclp_config.c | 2 +- drivers/s390/char/sclp_early.c | 5 +- drivers/s390/char/sclp_early_core.c | 12 +- drivers/s390/char/sclp_sd.c | 26 ++++- drivers/s390/cio/qdio_main.c | 2 +- drivers/s390/cio/qdio_thinint.c | 2 +- drivers/s390/cio/trace.h | 2 +- 88 files changed, 1207 insertions(+), 778 deletions(-) create mode 100644 arch/s390/include/asm/arch_hweight.h create mode 100644 arch/s390/include/asm/dat-bits.h