From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 13659C27C4F for ; Fri, 21 Jun 2024 12:25:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 62B316B0323; Fri, 21 Jun 2024 08:25:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5D8E46B0325; Fri, 21 Jun 2024 08:25:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 451E26B0326; Fri, 21 Jun 2024 08:25:13 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 281D16B0323 for ; Fri, 21 Jun 2024 08:25:13 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id CEDE5A0E66 for ; Fri, 21 Jun 2024 12:25:12 +0000 (UTC) X-FDA: 82254815664.27.08490E9 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by imf06.hostedemail.com (Postfix) with ESMTP id 9AA1C180015 for ; Fri, 21 Jun 2024 12:25:09 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=DxC9YrH0; dmarc=pass (policy=none) header.from=ibm.com; spf=pass (imf06.hostedemail.com: domain of iii@linux.ibm.com designates 148.163.158.5 as permitted sender) smtp.mailfrom=iii@linux.ibm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1718972698; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=erZvlatfvJVe/hx7BkMgZ/7G1oP598/R1HnuL1JF6tI=; b=lQlcciGGGjBf37i6paFLDhWeBl26212lp42+TYumuRuDpCpFgC0dveXGIjjND7exwLDf3B m+wk2UzFQC5B1dXjCpY8tK2vfz98HWEDQOCsUX4FxY19U7w+tdctX92KqUYVwYlrYJsGw3 wBWpyUMcMG0bpVV/cpZgOLIsBGpUshM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718972698; a=rsa-sha256; cv=none; b=CQgiByQ6Qr966yVwuH4gD6AXxH9YDREMmlBHLW9TG9SctFyCbeyPquqVEAUuT/OFDZM+Wd lkhuCl4TRtfOJSpq4iQo27AdTQsQ8A7sm/ZapHFR6RqMZMXTUQKKfV2F62RxaISdem03H7 1mvd1BGsIGmtbSIeOklpowH0S4GOlXI= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=DxC9YrH0; dmarc=pass (policy=none) header.from=ibm.com; spf=pass (imf06.hostedemail.com: domain of iii@linux.ibm.com designates 148.163.158.5 as permitted sender) smtp.mailfrom=iii@linux.ibm.com Received: from pps.filterd (m0353722.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 45LBR6cr001379; Fri, 21 Jun 2024 11:37:31 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from :to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=pp1; bh=erZvlatfvJVe/ hx7BkMgZ/7G1oP598/R1HnuL1JF6tI=; b=DxC9YrH0fGKAyxTuo1OSltoEp0ikk /yNVAaQEJslqISR/aGO0K+I4OizC4wHbTu9deax938wGw5BB55huj8gJ4wscsmcB K0ZOzktZy6IxNgyGEJfy81GTJb+cxpow6ixZh3WrVMzCknXZ8tUEbf8TH65E9+8r /hh5DH5wA7h5bWbmmRAXVTpt7m+UBVj72m34UeIO263qw8xJEf3dh7/xcQIVVlxk B+tc7n6gdenKmCD8pR7qadwS8u2eV8+SYXgaTXjQQa/lnPP6Xo5sLUiAvMvv5+wU mc/iztUFBNCzB8mx+dc/S4oODUvX1xvnrVV3CDryT3s44WTe/PHNnu2Jg== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3yw5krgf2m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 21 Jun 2024 11:37:31 +0000 (GMT) Received: from m0353722.ppops.net (m0353722.ppops.net [127.0.0.1]) by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 45LBWqdJ011582; Fri, 21 Jun 2024 11:37:30 GMT Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3yw5krgf2g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 21 Jun 2024 11:37:30 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 45L9CfeQ025708; Fri, 21 Jun 2024 11:37:29 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 3yvrqv6w06-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 21 Jun 2024 11:37:29 +0000 Received: from smtpav01.fra02v.mail.ibm.com (smtpav01.fra02v.mail.ibm.com [10.20.54.100]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 45LBbNOn20251114 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 21 Jun 2024 11:37:25 GMT Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C1A742004F; Fri, 21 Jun 2024 11:37:23 +0000 (GMT) Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 37C4E2004B; Fri, 21 Jun 2024 11:37:23 +0000 (GMT) Received: from black.boeblingen.de.ibm.com (unknown [9.155.200.166]) by smtpav01.fra02v.mail.ibm.com (Postfix) with ESMTP; Fri, 21 Jun 2024 11:37:23 +0000 (GMT) From: Ilya Leoshkevich To: Alexander Gordeev , Alexander Potapenko , Andrew Morton , Christoph Lameter , David Rientjes , Heiko Carstens , Joonsoo Kim , Marco Elver , Masami Hiramatsu , Pekka Enberg , Steven Rostedt , Vasily Gorbik , Vlastimil Babka Cc: Christian Borntraeger , Dmitry Vyukov , Hyeonggon Yoo <42.hyeyoo@gmail.com>, kasan-dev@googlegroups.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-s390@vger.kernel.org, linux-trace-kernel@vger.kernel.org, Mark Rutland , Roman Gushchin , Sven Schnelle , Ilya Leoshkevich Subject: [PATCH v7 24/38] s390/boot: Add the KMSAN runtime stub Date: Fri, 21 Jun 2024 13:35:08 +0200 Message-ID: <20240621113706.315500-25-iii@linux.ibm.com> X-Mailer: git-send-email 2.45.1 In-Reply-To: <20240621113706.315500-1-iii@linux.ibm.com> References: <20240621113706.315500-1-iii@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-GUID: p0zIJbCSnkM2es8X-_i5LPorVdCAulWG X-Proofpoint-ORIG-GUID: N52-iqLFxUlqfOzwf01LwPyXye5pwRf4 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-06-21_04,2024-06-21_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 bulkscore=0 spamscore=0 phishscore=0 mlxlogscore=999 priorityscore=1501 suspectscore=0 adultscore=0 malwarescore=0 mlxscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2406140001 definitions=main-2406210084 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 9AA1C180015 X-Stat-Signature: n958ze16fb8fkx1oo5pz7jeyquc4nfy6 X-Rspam-User: X-HE-Tag: 1718972709-825764 X-HE-Meta: U2FsdGVkX18s27Qzu331kA2m+DHK2nWkbOYhloDVLY61Ga2PV4HH6Lc7ceU4qtL3yV1G4EQ7U6ZCBAKpKbxZwSG6mc4hH513Y2KCrXnMgU8Q4x4RVsYB6lXtFAwhPblwIm6ZIaCVNGk5opVSXwjin5XPcv7CMV7tlRFyMN8r3f2HKBAzBJVKaQMJ/br5RA7qeA7PvEd1ht63Oei2iyMmgPBWeRKSCxpsx3BDEZgsts01pLHTiY8jjr/gYxaAqXcI8/4CKfUvJAoyISfdYks341KOfC7bUKH9ubBwRpIEdaYtBWDkujBCJjSOhzqIEZIggvfZBHzwn7asuMIgDOHcgel2BK1kaOaLH0REyaBpj1zCusjCnvN0c3T54wsAg7Tz5FgQWyE7CQcVyix/SFq+mdVM+2JUsRmLQjYdSCDKJJHnju9F05/6aAzf0QEhQOswU2oUNKKA54pj5vatYHSUGNDB1FEnI7dou9/36Fw9jshPSFBb+6ydKSb4lHWKccn0/Q75JxVJ6FCv445VnCotiWL34eM1VG4evwzL16iHjLhxHadsiOrDA/5IOSiFgU+WOq/MCJit6Q1nMcE06BYQ6sCaXJf0P+EcM5byF9TFCj5MgUvf9mUbmjjnjyNFDLF6XjvmzVb9NsAUOV74vUekwJVOkIkTdriIdqr6hiabqPTbFC+WibLzX3ABdHOH+yuY9VDqL7Sp41rvujBKrgxo9t6I3i930PewW5wYqyDAJs1rFKzpCkrg6+Y8D/xAHbutYf8566XkIxG4T1bWPC0pNeIAVn3lnP8VzyaKE8IyhedQYEJ1TeuvtveNHLWtoYpubqxSTlP7+fVTg5M1y2Ie2chwd/D7k/v5MSC9+gqIEQUuZiBhjkSA/qJBs7pNigId+ICjqwUxulVZ9m3HU0rl1zEcIsYpJ8qBthSRmg8DMoKpG2qiG3vZdECLqWMF54mN44p7pj4jWVUwhTvVZto azIIyZZ9 oaG0/04cD+RFBFiR/9PIwpPDlJZojaqaYwhyC3e7EsUoeJ4wgm0dysRKjHlPV0vI6p78bR8oak0+X1IJcEhcHRO3ikfTvbRTdt5RQSrnN7RtxE+uIW1pzwlcjCIRxda3FXfj6utxeWwTwYhU5lbcWMxHnzYf0GH55bbDgUmJDEOkQA3bT9tlBPt44qF03zPfAwaA6B84774b5oAz4yJDlxE4q61WyWTNWRk/VGxV4bsasMa6nlf67QNdLIF8FBuJ1z1hZAejO7HT6bNezkbYOv87oG4912aOlN7Tqsgn15gx57iRfRgShvu5FrmbtPMVU71HNh0vOUXYb6PtRKCairT4s7tAB7SjmdtEUAPEZoEEultLEd+Gt6oPTkQ5cp/UbDr3GRzmFyGZDHtB5inAUt32oPpi0olwRqaSKny5ROm7L2itd7BTvXttq34p58SQFPWtP X-Bogosity: Ham, tests=bogofilter, spamicity=0.000011, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: 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. Reviewed-by: Alexander Potapenko Signed-off-by: Ilya Leoshkevich --- arch/s390/boot/Makefile | 1 + arch/s390/boot/kmsan.c | 6 ++++++ 2 files changed, 7 insertions(+) create mode 100644 arch/s390/boot/kmsan.c diff --git a/arch/s390/boot/Makefile b/arch/s390/boot/Makefile index 526ed20b9d31..e7658997452b 100644 --- a/arch/s390/boot/Makefile +++ b/arch/s390/boot/Makefile @@ -44,6 +44,7 @@ obj-$(findstring y, $(CONFIG_PROTECTED_VIRTUALIZATION_GUEST) $(CONFIG_PGSTE)) += 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) diff --git a/arch/s390/boot/kmsan.c b/arch/s390/boot/kmsan.c new file mode 100644 index 000000000000..e7b3ac48143e --- /dev/null +++ b/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) +{ +} -- 2.45.1