From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 736A06A35A for ; Thu, 14 Dec 2023 22:43:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux-foundation.org header.i=@linux-foundation.org header.b="k4KHrxi6" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A1D1FC433C7; Thu, 14 Dec 2023 22:43:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1702593830; bh=8iqJfe8PY4zKnWf4F38c68yqRhlpq+HxvxSvo0vRf+Q=; h=Date:To:From:Subject:From; b=k4KHrxi63NUW78Jq4dQzzP+/r/TRh1GihPlsgZ3jM9T0+QliMsjg13yuR67bR6qcu i9omuVknqR+6qgzezqLxFAzlKma8DpoovkThw2tvuyY+vsOr1yTZNE4s1oyoNH9Xvf IDz82SQDXMGMiWpu4/GMH9sKVcCpJSqvi10Vrmfw= Date: Thu, 14 Dec 2023 14:43:50 -0800 To: mm-commits@vger.kernel.org,vbabka@suse.cz,svens@linux.ibm.com,rostedt@goodmis.org,roman.gushchin@linux.dev,rientjes@google.com,penberg@kernel.org,mhiramat@kernel.org,mark.rutland@arm.com,iamjoonsoo.kim@lge.com,hca@linux.ibm.com,gor@linux.ibm.com,glider@google.com,elver@google.com,dvyukov@google.com,cl@linux.com,borntraeger@linux.ibm.com,agordeev@linux.ibm.com,42.hyeyoo@gmail.com,iii@linux.ibm.com,akpm@linux-foundation.org From: Andrew Morton Subject: + s390-boot-add-the-kmsan-runtime-stub.patch added to mm-unstable branch Message-Id: <20231214224350.A1D1FC433C7@smtp.kernel.org> Precedence: bulk X-Mailing-List: mm-commits@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: The patch titled Subject: s390/boot: add the KMSAN runtime stub has been added to the -mm mm-unstable branch. Its filename is s390-boot-add-the-kmsan-runtime-stub.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/s390-boot-add-the-kmsan-runtime-stub.patch This patch will later appear in the mm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: Ilya Leoshkevich Subject: s390/boot: add the KMSAN runtime stub Date: Thu, 14 Dec 2023 00:24:41 +0100 It should be possible to have inline functions in the s390 header files, which call kmsan_unpoison_memory(). The problem is that these header files might be included by the decompressor, which does not contain KMSAN runtime, causing linker errors. Not compiling these calls if __SANITIZE_MEMORY__ is not defined - either by changing kmsan-checks.h or at the call sites - may cause unintended side effects, since calling these functions from an uninstrumented code that is linked into the kernel is valid use case. One might want to explicitly distinguish between the kernel and the decompressor. Checking for a decompressor-specific #define is quite heavy-handed, and will have to be done at all call sites. A more generic approach is to provide a dummy kmsan_unpoison_memory() definition. This produces some runtime overhead, but only when building with CONFIG_KMSAN. The benefit is that it does not disturb the existing KMSAN build logic and call sites don't need to be changed. Link: https://lkml.kernel.org/r/20231213233605.661251-22-iii@linux.ibm.com Signed-off-by: Ilya Leoshkevich Reviewed-by: Alexander Potapenko Cc: Alexander Gordeev Cc: Christian Borntraeger Cc: Christoph Lameter Cc: David Rientjes Cc: Dmitry Vyukov Cc: Heiko Carstens Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com> Cc: Joonsoo Kim Cc: Marco Elver Cc: Mark Rutland Cc: Masami Hiramatsu Cc: Pekka Enberg Cc: Roman Gushchin Cc: Steven Rostedt (Google) Cc: Sven Schnelle Cc: Vasily Gorbik Cc: Vlastimil Babka Signed-off-by: Andrew Morton --- arch/s390/boot/Makefile | 1 + arch/s390/boot/kmsan.c | 6 ++++++ 2 files changed, 7 insertions(+) --- /dev/null +++ a/arch/s390/boot/kmsan.c @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0 +#include + +void kmsan_unpoison_memory(const void *address, size_t size) +{ +} --- a/arch/s390/boot/Makefile~s390-boot-add-the-kmsan-runtime-stub +++ a/arch/s390/boot/Makefile @@ -44,6 +44,7 @@ obj-$(findstring y, $(CONFIG_PROTECTED_V obj-$(CONFIG_RANDOMIZE_BASE) += kaslr.o obj-y += $(if $(CONFIG_KERNEL_UNCOMPRESSED),,decompressor.o) info.o obj-$(CONFIG_KERNEL_ZSTD) += clz_ctz.o +obj-$(CONFIG_KMSAN) += kmsan.o obj-all := $(obj-y) piggy.o syms.o targets := bzImage section_cmp.boot.data section_cmp.boot.preserved.data $(obj-y) _ Patches currently in -mm which might be from iii@linux.ibm.com are ftrace-unpoison-ftrace_regs-in-ftrace_ops_list_func.patch kmsan-make-the-tests-compatible-with-kmsanpanic=1.patch kmsan-disable-kmsan-when-deferred_struct_page_init-is-enabled.patch kmsan-increase-the-maximum-store-size-to-4096.patch kmsan-fix-is_bad_asm_addr-on-arches-with-overlapping-address-spaces.patch kmsan-fix-kmsan_copy_to_user-on-arches-with-overlapping-address-spaces.patch kmsan-remove-a-useless-assignment-from-kmsan_vmap_pages_range_noflush.patch kmsan-remove-an-x86-specific-include-from-kmsanh.patch kmsan-expose-kmsan_get_metadata.patch kmsan-export-panic_on_kmsan.patch kmsan-allow-disabling-kmsan-checks-for-the-current-task.patch kmsan-support-slab_poison.patch kmsan-use-align_down-in-kmsan_get_metadata.patch mm-slub-let-kmsan-access-metadata.patch mm-slub-unpoison-the-memchr_inv-return-value.patch mm-kfence-disable-kmsan-when-checking-the-canary.patch lib-zlib-unpoison-dfltcc-output-buffers.patch kmsan-accept-ranges-starting-with-0-on-s390.patch s390-turn-off-kmsan-for-boot-vdso-and-purgatory.patch s390-use-a-larger-stack-for-kmsan.patch s390-boot-add-the-kmsan-runtime-stub.patch s390-checksum-add-a-kmsan-check.patch s390-cpacf-unpoison-the-results-of-cpacf_trng.patch s390-cpumf-unpoison-stcctm-output-buffer.patch s390-diag-unpoison-diag224-output-buffer.patch s390-ftrace-unpoison-ftrace_regs-in-kprobe_ftrace_handler.patch s390-irqflags-do-not-instrument-arch_local_irq_-with-kmsan.patch s390-mm-define-kmsan-metadata-for-vmalloc-and-modules.patch s390-string-add-kmsan-support.patch s390-traps-unpoison-the-kernel_stack_overflows-pt_regs.patch s390-uaccess-add-kmsan-support-to-put_user-and-get_user.patch s390-unwind-disable-kmsan-checks.patch s390-implement-the-architecture-specific-kmsan-functions.patch kmsan-enable-on-s390.patch