From nobody Mon Jun 8 05:25:27 2026 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (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 489133290B8; Mon, 1 Jun 2026 17:47:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780336032; cv=none; b=siAgVSYk4ZwaF0u0XzmoNFE4t578p0TmEGMTkxFqPy6klk+AbI/RAIQ4uQbQJ69Fim2D3BZJMrwEdzsejogXNC1h/CEGFlTg3NsRVGDCOrV97RmBoqcE18/AG50aVMcQCtFVjCAYvoiW2LH0rAQQneg0fUWAFGs+DaCryVBc4v8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780336032; c=relaxed/simple; bh=6Beh0BXLshpfL2Hb+MbUXy5c5KIRMxIbuJ8AL0kTKes=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=H1nSIe58dxmieBvRSOm8TEkmS/DJcarubeGJC1kBWHlgEsXgLmWOdbQWyrTV2H/+OPEE7mmlm+vjqCCTsCGASbZFcea1aR2YVuPNdI9aNULZNMgYvhCfcdfjHdygIvXmRGD6bVjZmn67xsuJBet301Wa426qElWkyIT+a12lffo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=AVixrssm; arc=none smtp.client-ip=148.163.156.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="AVixrssm" Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 651FtHA92915119; Mon, 1 Jun 2026 17:46:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=kiTQIqXzFRNR10s1i TIOjFdWLOqwspy0rkyPaFJ0kjE=; b=AVixrssmtr7lmKpa+fwDPRqv0lV3uU1/r p4jSN9MQxQEDBbu6NhtFft8xpi8otyb0Uvu7bh2X/9RWMWkukeS9PawulAcUwoDm 1wZblhSgr+yhN8X6NgWsmpTKbLES7LZ1OzfM1jPrWbvUDIosK4whcRFTWahv1aC7 r9rE5c3XNNqemlkKxDONnhx44lbydzcqeP/T+dRVSox8MjohC71dhp7MTz1PbJn2 VJoFXQF4D17IEGNqLacUx21zW+Lc4wtMlvdzmXIQUIjWKuNEmhQQR5zRMeuYehP3 HRaOmIQ0SUS62QuUrNixFTkD/b25TF6+x2hBUEp5vtbvc01VOs3aw== Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4efqd427sd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 01 Jun 2026 17:46:52 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 651Hd61j025111; Mon, 1 Jun 2026 17:46:50 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4egakvqh3g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 01 Jun 2026 17:46:50 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 651HklgZ45220098 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 1 Jun 2026 17:46:47 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id F0E5020040; Mon, 1 Jun 2026 17:46:46 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id ABA3F2004B; Mon, 1 Jun 2026 17:46:46 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.87.85.9]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 1 Jun 2026 17:46:46 +0000 (GMT) From: Jan Polensky To: hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com, ojeda@kernel.org, peterz@infradead.org, jpoimboe@kernel.org, jbaron@akamai.com, aliceryhl@google.com Cc: borntraeger@linux.ibm.com, svens@linux.ibm.com, boqun@kernel.org, gary@garyguo.net, bjorn3_gh@protonmail.com, lossin@kernel.org, a.hindborg@kernel.org, tmgross@umich.edu, dakr@kernel.org, rostedt@goodmis.org, ardb@kernel.org, linux-s390@vger.kernel.org, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, japo@linux.ibm.com (Jan Polensky) Subject: [PATCH v5 1/6] s390/bug: Provide ARCH_WARN_ASM for Rust WARN/BUG support Date: Mon, 1 Jun 2026 19:46:20 +0200 Message-ID: <20260601174625.2910233-2-japo@linux.ibm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260601174625.2910233-1-japo@linux.ibm.com> References: <20260601174625.2910233-1-japo@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjAxMDE3NCBTYWx0ZWRfXyA99xsXcX0Dd P/F0Cy5uqQa4xCANClZfmg3bCWoGeCd0jZRoUVZ0Jmb8kB6nkbouNALBd12gMNeaqCX4sVL3f7/ ydzFO3vU7/pTDV5dLsNdtokCukO61ZKhuF2d8Qyy88iSyB5HOlIr74ROy9nlhBBP6babLDa7M4G nBL5QKccpa4PWWYMAJaAQwiiSf0z+kOKmC1JfUlasnljbkp/T9lt31Nd1AO8xyLGQBEedEgNklC iPyO28rk4Tm5+efWtGKfbDgSMUb1VXfWguPofZdKAyKhTGtL+vkEZ54G8i+joN08QBFXXRv3D7D iK9HZCc0Fvs18QGjVy/HkeLFH1AZ8lZ/0T4eAkQNn1EVKwCG9FTVeAuhVlPazP10m2VFvf4+0QW ZgqWqTycn3CFlo7R0TB0gvjjNbVhickAMv0Hbxu9QdEec9S+WFR986OwD4ziwdY9YT1C9enkEpf Ezst32rHKIiriTtTNzA== X-Proofpoint-GUID: 0tT5OgJF6yi6c20TP8yP5dQBmTEOTWty X-Proofpoint-ORIG-GUID: qsAZwh1riQIXGKVXJ-J9v05iSYEMM-1O X-Authority-Analysis: v=2.4 cv=DZknbPtW c=1 sm=1 tr=0 ts=6a1dc58c cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=FelO9ux0wxsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=_2yia0w1AAAA:8 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=gpATZORf9AIJ6E5TQREA:9 a=4yAS8WwzZ1jAEY03B-5r:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-01_05,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 suspectscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606010174 Content-Type: text/plain; charset="utf-8" Rust WARN and BUG support relies on ARCH_WARN_ASM to emit __bug_table entries. On s390 the macro is missing, so Rust code cannot generate proper WARN/BUG metadata for the kernel's bug reporting infrastructure. Define ARCH_WARN_ASM to produce the same assembly sequence and __bug_table entry format as the existing s390 BUG handling, including the monitor call. Define ARCH_WARN_REACHABLE as empty since s390 does not provide reachability analysis for warning paths. Acked-by: Gary Guo Acked-by: Miguel Ojeda Signed-off-by: Jan Polensky --- arch/s390/include/asm/bug.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/s390/include/asm/bug.h b/arch/s390/include/asm/bug.h index 59017fd3d935..d8e65885e935 100644 --- a/arch/s390/include/asm/bug.h +++ b/arch/s390/include/asm/bug.h @@ -4,6 +4,7 @@ =20 #include #include +#include =20 #define MONCODE_BUG _AC(0, U) #define MONCODE_BUG_ARG _AC(1, U) @@ -121,6 +122,17 @@ do { \ #define HAVE_ARCH_BUG_FORMAT #define HAVE_ARCH_BUG_FORMAT_ARGS =20 +#define ARCH_WARN_ASM(file, line, flags, size) \ + ".section .rodata.str,\"aMS\",@progbits,1\n" \ + "9:\n" \ + ".asciz \"\"\n" /* Empty string for compatibility */ \ + ".previous\n" \ + "0:\n" \ + __stringify(mc 0(%r0),0) "\n" \ + __BUG_ENTRY("9b", file, line, flags, size) + +#define ARCH_WARN_REACHABLE + #endif /* CONFIG_BUG && CONFIG_CC_HAS_ASM_IMMEDIATE_STRINGS */ #endif /* __ASSEMBLER__ */ =20 --=20 2.53.0 From nobody Mon Jun 8 05:25:27 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (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 95F1113A3F7; Mon, 1 Jun 2026 17:47:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780336027; cv=none; b=dV11aOoMln61J9PMfqlqgA7eoSAZjVjB+we3ieIxgByRudUOBrpVCGsaGixU3Zu709NtHJfl2YK0XAPJBrsTPXgJlZ1xwmivtilljZLAP9CoP3VGTP7V8gKNQvY7zqyiWkWOTPJCXwP495BTQQ/eoapGrMLGsZYn43HJvopw8a0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780336027; c=relaxed/simple; bh=UlEGYP8jSj19m7y5UJVI2ZyhNH8EIvLeJPip/Lv2Xuk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=se7KPrwAoEM55/p5hDLMM7PQ9QQ8oOcXyrHfpWjBjEYVDuZbfqFgb0dDcIfR7vMsmHlBu1xECFUJy+psgrj9MqMfZFX4qyiGIBOTJOTVVF0AhRNm8+7RzYcgYq4EayaT4Ky7VLASjqeJdw98KOrn4NOfg96WZKLv4h1UyiqpE/A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=pxY/6VTX; arc=none smtp.client-ip=148.163.158.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="pxY/6VTX" Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65183V8Z2708324; Mon, 1 Jun 2026 17:46:52 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=ZbqJ94R3zv4TlxZ4l Pc4zdJzKpGMXMz18Ox5ufJCyYU=; b=pxY/6VTXdOugpDHnca4K5bzB+DO6aOAI0 BmQNSGg7Cs1yAw0Kw0gy/EAYVqxU7/z01iNRFZqTHz1z2qrC/N21PPzCJBN2Pi8a s0VKGULe7fM5/Knm9Osvskpa+rKe3st/TTeatQR9N0ywMqF84y326Uo8oGs9qmAp 6bxU6lxX0bvFvekqJvdgiC4v15VEeR0QXVrYcDxkH+gLOtOjhEMlT9djpbwlI6zD JlCLPbNhMy4X5bbNHsz/OGBCB+w70U/Pc/glFEnwP7sIpu8pe5BafhUaXCODvE59 1QWPA/oTxD0f4H86v40vqJkiT7HGXepCsf7EyWktIieluJlRKJHRA== Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4efnahj1sy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 01 Jun 2026 17:46:51 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 651HdE4X022661; Mon, 1 Jun 2026 17:46:51 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4egbqh7abp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 01 Jun 2026 17:46:51 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 651HklUn45220106 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 1 Jun 2026 17:46:47 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4A63E20040; Mon, 1 Jun 2026 17:46:47 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0245820043; Mon, 1 Jun 2026 17:46:47 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.87.85.9]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 1 Jun 2026 17:46:46 +0000 (GMT) From: Jan Polensky To: hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com, ojeda@kernel.org, peterz@infradead.org, jpoimboe@kernel.org, jbaron@akamai.com, aliceryhl@google.com Cc: borntraeger@linux.ibm.com, svens@linux.ibm.com, boqun@kernel.org, gary@garyguo.net, bjorn3_gh@protonmail.com, lossin@kernel.org, a.hindborg@kernel.org, tmgross@umich.edu, dakr@kernel.org, rostedt@goodmis.org, ardb@kernel.org, linux-s390@vger.kernel.org, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, japo@linux.ibm.com (Jan Polensky) Subject: [PATCH v5 2/6] s390/jump_label: Implement ARCH_STATIC_BRANCH_JUMP_ASM and ARCH_STATIC_BRANCH_ASM macros Date: Mon, 1 Jun 2026 19:46:21 +0200 Message-ID: <20260601174625.2910233-3-japo@linux.ibm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260601174625.2910233-1-japo@linux.ibm.com> References: <20260601174625.2910233-1-japo@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjAxMDE3NCBTYWx0ZWRfX/OF62GgYouUS h9eY46xwMWyfPKS6PQkJQQDm7kY7YkGYcakJrkmfG4c3NJ3DjJhlfF/WdUYJPlUJpHw5tktPEAt 6XDs4Yl5r8VD7bYEZqqXZua7p/y9cltsTvlmHRLzSRO+UQ1Cwpng48+8lL3qZxxdiwfEGZQCsL2 OguuQyg6L0IqM2eojIcjXdy2N+Nhd2QfkrlEaJrrZUvlx/7RAfLKVHrQLhnu7c+gf+SfURmTElC 5mFQTY6L1pg+jRR+yGQmOU+gh78MWJAeCcdEMx5wU3FC9Sjd+7nQ6eEl2JyvvJEoLVmWTt37TPa Pf5J79CHf9deiWEbeWlPGJSkGZdbiZgQBpkg9lEPsZfTcwk8WqJ+lDR7LN+qYooxhfibAxA/R+F Gvd6H7z/yDiecx6uNIfSuudRm+27EnY6NDgql790q9kChEWt2tMKSyuvdrt7Ee5d7G3CWdC5vXH Vz32tik0hpQAQl3rAWQ== X-Proofpoint-ORIG-GUID: 9Bl-JSlMxba5Wi58Z0jA9Ex6e-uvbMf_ X-Authority-Analysis: v=2.4 cv=cOzQdFeN c=1 sm=1 tr=0 ts=6a1dc58c cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=FelO9ux0wxsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=Y2IxJ9c9Rs8Kov3niI8_:22 a=_2yia0w1AAAA:8 a=VwQbUJbxAAAA:8 a=1XWaLZrsAAAA:8 a=VnNF1IyMAAAA:8 a=V3UG4Yqg79Bxd1UTefQA:9 a=4yAS8WwzZ1jAEY03B-5r:22 X-Proofpoint-GUID: L3KN9O8HH5Ij7RoKU9xRJ9jXmuS0e1RX X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-01_05,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 lowpriorityscore=0 spamscore=0 bulkscore=0 malwarescore=0 phishscore=0 suspectscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606010174 Content-Type: text/plain; charset="utf-8" Rust static branch support needs the s390 jump label instruction sequence and __jump_table emission in a reusable form. The current implementation embeds the sequence directly in the C asm goto blocks, which cannot be shared with Rust. Introduce ARCH_STATIC_BRANCH_ASM and ARCH_STATIC_BRANCH_JUMP_ASM to describe the brcl sequences for the likely-false and likely-true cases and to emit the same __jump_table entries as before. Switch the existing C helpers to use the new macros to avoid duplication without changing the generated code. Acked-by: Gary Guo Acked-by: Miguel Ojeda Reviewed-by: Alice Ryhl Signed-off-by: Jan Polensky --- arch/s390/include/asm/jump_label.h | 33 +++++++++++++++++------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/arch/s390/include/asm/jump_label.h b/arch/s390/include/asm/jum= p_label.h index d9cbc18f6b2e..0e28c90dc242 100644 --- a/arch/s390/include/asm/jump_label.h +++ b/arch/s390/include/asm/jump_label.h @@ -19,19 +19,29 @@ #define JUMP_LABEL_STATIC_KEY_CONSTRAINT "jdd" #endif =20 +#define ARCH_JUMP_TABLE_ENTRY(key, label, local_label) \ + ".pushsection __jump_table,\"aw\"\n" \ + ".balign 8\n" \ + ".long " local_label "-.," label "-.\n" \ + ".quad " key "-.\n" \ + ".popsection\n" + /* * We use a brcl 0, instruction for jump labels so it * can be easily distinguished from a hotpatch generated instruction. */ +#define ARCH_STATIC_BRANCH_ASM(key, label) \ + "0: brcl 0," label "\n" \ + ARCH_JUMP_TABLE_ENTRY(key, label, "0b") + +#define ARCH_STATIC_BRANCH_JUMP_ASM(key, label) \ + "0: brcl 15," label "\n" \ + ARCH_JUMP_TABLE_ENTRY(key, label, "0b") + static __always_inline bool arch_static_branch(struct static_key *key, boo= l branch) { - asm goto("0: brcl 0,%l[label]\n" - ".pushsection __jump_table,\"aw\"\n" - ".balign 8\n" - ".long 0b-.,%l[label]-.\n" - ".quad %0+%1-.\n" - ".popsection\n" - : : JUMP_LABEL_STATIC_KEY_CONSTRAINT (key), "i" (branch) : : label); + asm goto(ARCH_STATIC_BRANCH_ASM("%0+%1", "%l[label]") + : : JUMP_LABEL_STATIC_KEY_CONSTRAINT (key), "i" (branch) : : label); return false; label: return true; @@ -39,13 +49,8 @@ static __always_inline bool arch_static_branch(struct st= atic_key *key, bool bran =20 static __always_inline bool arch_static_branch_jump(struct static_key *key= , bool branch) { - asm goto("0: brcl 15,%l[label]\n" - ".pushsection __jump_table,\"aw\"\n" - ".balign 8\n" - ".long 0b-.,%l[label]-.\n" - ".quad %0+%1-.\n" - ".popsection\n" - : : JUMP_LABEL_STATIC_KEY_CONSTRAINT (key), "i" (branch) : : label); + asm goto(ARCH_STATIC_BRANCH_JUMP_ASM("%0+%1", "%l[label]") + : : JUMP_LABEL_STATIC_KEY_CONSTRAINT (key), "i" (branch) : : label); return false; label: return true; --=20 2.53.0 From nobody Mon Jun 8 05:25:27 2026 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (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 5C80B3E00A5; Mon, 1 Jun 2026 17:47:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780336032; cv=none; b=t5nRwA+Qk7rzJTlrjA+DM6A5pyWjNv2GlQPAgGVUFINCSQOqMvh93LMufT29BjWpmnEJ1Ft7jQ3WA5CvSn7Ler4roy23fZbWXiLCrt731cFXP8WW9iEacO7iWWEUnK2hoWS7zO0++tsryDGMpQqN1sntfvmpmO8srAd+alAnjGg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780336032; c=relaxed/simple; bh=Vd7JkkJGwU+ndIOE2hGalsRoLJ3LOkBDeYaTorLewrs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=B2V6mPRRT7zMHlRsUyD2R1aJUH1w8gWp4W7CqDB3Sj13rGBJaCeFkqPA8ZF6y+T+kdFWtXuZWph3G5J4Ue439DD19Ge02CQFRwAQCI1Zv1VDgvDoTHY+egop+kyEgO1Ml308zVIn9kkdde8OGEjUl8rN51LQEb/hBNAsGbtNv54= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=CCldWWOL; arc=none smtp.client-ip=148.163.156.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="CCldWWOL" Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 651FkAjX2063712; Mon, 1 Jun 2026 17:46:52 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=+lHgl9XGuPjotBOZW 0LAcVmsVCtDfpfxl4qC6+TiOW4=; b=CCldWWOL5cP3tq2TbAQAYBX5/XvmbET4C RuZcJ0ZjzvSN5j89Z7SnoJoJCjfsyU/cbRm8iRlOQJkNr7ShVuuGQztErGS2OvVv PgQu+cAUK41cnJQd85YCuzy/BvP8noGhQ5Y8yQzEvAii/z7k13unLxAPJwRfCaQV rR0TabeAOY5WYoB51gFoMwQbXlY9/tmBPGXSxXSqbw9yhfG+gH+jtfaX6m+111Bo vq8qOLy0ZJuwG/Xa+Eu92/SW3VMpazD3G6zicS1u0vBNTe2ALaDguHjBv502LAV9 dDAvJHBRG22V/Fhs2UKFfbex/+TV9G3zlg6GsiRcjcE2i53vgVh+Q== 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 4efqm4t5s5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 01 Jun 2026 17:46:52 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 651Hd5Tl009459; Mon, 1 Jun 2026 17:46:51 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4egcegf601-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 01 Jun 2026 17:46:51 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 651Hkl4H46399768 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 1 Jun 2026 17:46:47 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 980AC20040; Mon, 1 Jun 2026 17:46:47 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4FDD92004B; Mon, 1 Jun 2026 17:46:47 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.87.85.9]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 1 Jun 2026 17:46:47 +0000 (GMT) From: Jan Polensky To: hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com, ojeda@kernel.org, peterz@infradead.org, jpoimboe@kernel.org, jbaron@akamai.com, aliceryhl@google.com Cc: borntraeger@linux.ibm.com, svens@linux.ibm.com, boqun@kernel.org, gary@garyguo.net, bjorn3_gh@protonmail.com, lossin@kernel.org, a.hindborg@kernel.org, tmgross@umich.edu, dakr@kernel.org, rostedt@goodmis.org, ardb@kernel.org, linux-s390@vger.kernel.org, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, japo@linux.ibm.com (Jan Polensky) Subject: [PATCH v5 3/6] rust/bindgen_parameters: Mark s390 types as opaque to prevent repr conflicts Date: Mon, 1 Jun 2026 19:46:22 +0200 Message-ID: <20260601174625.2910233-4-japo@linux.ibm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260601174625.2910233-1-japo@linux.ibm.com> References: <20260601174625.2910233-1-japo@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-GUID: LBPPWJDlVVqqr7HuMK_z3TF6KKTKYFIH X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjAxMDE3NCBTYWx0ZWRfX+OA1hwk4WGIq 9iNDTb8Ees+X5RRfJcg2vOWvhV+d008M6okDvVC09u/T7QIO/Zejt/tZPBYSSF6CaRUN3wz3xUK 3GrPt4vaXfguVUxhNCF27nRvvnNA3AkkGzKsbAmY5DNce65zjSmNAL4eCIGY2X6oxlo/m8rfupI UWfR8xN2TCzfPSL9jjOAVWTo1yBx3FKZtw5vL3Yc/liGtzvlJg1AaqbzBGk5wWNriyqA5KdRF+4 oWfGYfrvVI3JP1ZmDehdaXqj9q/GIx5C7mMwCA+JEu2Pu48bXGOXxFxMfhgpkHfAoXkZYmAUftb TFo2qGXyTDbRWZBwlnmzWpJZikIRKxppaX/5+ad7q8qusq+5p4hX5dIPYHAkeeSNeWZlaUKpqp5 u14nmAzWBEDoUDmrWI/zzH4Fu47UkdXRMVZfKAmGUAXi7bGBivFzATxhrAAvFZhk51KBFYaAcDY boNuBLywSgEv6XtlRpA== X-Proofpoint-ORIG-GUID: oJoe2p-06_IeNdB0DGWBgCaz5a8MaGgX X-Authority-Analysis: v=2.4 cv=Vf3H+lp9 c=1 sm=1 tr=0 ts=6a1dc58c cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=FelO9ux0wxsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=U7nrCbtTmkRpXpFmAIza:22 a=VwQbUJbxAAAA:8 a=QyXUC8HyAAAA:8 a=_2yia0w1AAAA:8 a=VnNF1IyMAAAA:8 a=7MZg_RI75Eq2x-0mQykA:9 a=4yAS8WwzZ1jAEY03B-5r:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-01_05,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 adultscore=0 bulkscore=0 impostorscore=0 phishscore=0 lowpriorityscore=0 malwarescore=0 clxscore=1015 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606010174 Content-Type: text/plain; charset="utf-8" Bindgen attempts to generate Rust layouts for a number of s390 structs that are packed but contain, or transitively contain, aligned fields. Rust rejects such layouts with E0588 ("packed type cannot transitively contain a #[repr(align)] type"). Add the affected s390 types to the opaque type list so bindgen emits opaque blob types instead of full representations. This matches existing workarounds for x86 types such as alt_instr and x86_msi_data. Link: https://lore.kernel.org/all/e5c7aa10-590d-0d20-dd3b-385bee2377e7@inte= l.com/ Acked-by: Miguel Ojeda Reviewed-by: Gary Guo Signed-off-by: Jan Polensky --- rust/bindgen_parameters | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rust/bindgen_parameters b/rust/bindgen_parameters index 6f02d9720ad2..8402b0c93545 100644 --- a/rust/bindgen_parameters +++ b/rust/bindgen_parameters @@ -14,6 +14,13 @@ --opaque-type alt_instr --opaque-type x86_msi_data --opaque-type x86_msi_addr_lo +# s390-only: same packed/align issue as above (E0588). +--opaque-type lowcore +--opaque-type tod_clock +--opaque-type tpi_info +--opaque-type uv_cb.* +--opaque-type uv_secret.* +--opaque-type zpci_fib =20 # If SMP is disabled, `arch_spinlock_t` is defined as a ZST which triggers= a Rust # warning. We don't need to peek into it anyway. --=20 2.53.0 From nobody Mon Jun 8 05:25:27 2026 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (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 8C2AE3290B8; Mon, 1 Jun 2026 17:47:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780336038; cv=none; b=hZ1NdhepCoZK8PMaZAvZ5pvLQNByvXS/cflziuu8l2J+RwKnjgaDERrh0r9NAPhyPz+EDI5g8c8hp3iahPodUdZ8opJGwHmIQ02M6w1OlmzNmorcJVd6UH5qpT9LsPy2E3Dv3xBmrNRHr4GbAHQRh8dmJMU+M1BRWGntKM86zeM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780336038; c=relaxed/simple; bh=phafkXkPal7edQRE+4hr3mKklDGfz5zr/ybrDpBlOUo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=My3dJ4NyEK6BeNE3D4jdZG8+smI8PIo2JMeDM6UtfBxT0R9nsOGLlX4OKu2SktMmBWXJ0lnWDjSqzujMtb51L/+FsT8MN6ZIjbTY9K1WXfIKfEMonQHcWSUou7zr9tiCzhl/m5y1Lnbiz3oisDqFZhVGK0jDoQ3RA5HPM5pOqiU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=Jzt8GE2H; arc=none smtp.client-ip=148.163.156.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="Jzt8GE2H" Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 651Ee1aM1360394; Mon, 1 Jun 2026 17:46:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=ubH1qkuwQxMGssjzN QTwbfYf5FFyJ+BISqvcGLhv9sQ=; b=Jzt8GE2HzczZ0MudhcEMsSoO9AJkr7Eee SRQwBzMGMCbAe7/zaZyDa1q4CZk94qD0ruGxbibossTFR3D7JBTdrL9fLlERxxDI xArVki2ihkAB6ucMM4iRT9NbEW9gOJGl2JgHO4/51omPP/YVs8DRDz34hWyWP4ll YtItPgR77tlYmHTHiVcu3vBPXKVMPIYa60bmDDkWimOCdceD9mfb/F0mMp7wOtFO tnVb7XW6qBigOBcsGn2QSboKpWRQSz9BKnKK0lCD2B7aIn84mXMVjaZXeIUu9GTo A45khgUCc6Qq+W9s3IlRwNpb/eY44c+XFhZHuKao1XKl8rGL6gKmw== Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4efqd427sj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 01 Jun 2026 17:46:53 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 651Hd6S4017576; Mon, 1 Jun 2026 17:46:51 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4egb7jydbb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 01 Jun 2026 17:46:51 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 651Hkmql24379654 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 1 Jun 2026 17:46:48 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id ED38920040; Mon, 1 Jun 2026 17:46:47 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9D77820043; Mon, 1 Jun 2026 17:46:47 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.87.85.9]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 1 Jun 2026 17:46:47 +0000 (GMT) From: Jan Polensky To: hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com, ojeda@kernel.org, peterz@infradead.org, jpoimboe@kernel.org, jbaron@akamai.com, aliceryhl@google.com Cc: borntraeger@linux.ibm.com, svens@linux.ibm.com, boqun@kernel.org, gary@garyguo.net, bjorn3_gh@protonmail.com, lossin@kernel.org, a.hindborg@kernel.org, tmgross@umich.edu, dakr@kernel.org, rostedt@goodmis.org, ardb@kernel.org, linux-s390@vger.kernel.org, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, japo@linux.ibm.com (Jan Polensky) Subject: [PATCH v5 4/6] rust: helpers: Add memchr wrapper for string operations Date: Mon, 1 Jun 2026 19:46:23 +0200 Message-ID: <20260601174625.2910233-5-japo@linux.ibm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260601174625.2910233-1-japo@linux.ibm.com> References: <20260601174625.2910233-1-japo@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjAxMDE3NCBTYWx0ZWRfX7aM5zSbzJk7r 10kLoNOBcZgVXGGVBtGWKjwMUStFvEhP3SkZIB7YVeD4Gl16lIHLUTzqPWJKC8M1nGj46+L4guE SDKf5MibzsM8zQwYcRPIt/4CNTwxe0EKMSS/bYutMSiFWT+z85wAhNo/xwhjvk/PS65AnB5RLr4 /QcwAJ6ve+Aj54n7qnpj7/J+Ue5LRd/ABVjLieh/E1vrcvSg7Huk7s/xlu/BQL0/Cq8+s0OiQOP 1IfEYslPgEHVoa1w9W4eK5K8lvKPMLQsEknpoi6wIF65gkDzGP6PpQYR0sfKJswW3EdHe4r9S3c qAqmbh51zZuv/RZsRSDw2vXEOYkgfFfUcmjoQZxUvM8Vi5rJ1Kk2ERAHUSW+kWQusBvqF1V++GG RN/iBGWqLtoMavX9l2bdbQkfqpyFK0/Yo6FrpWwbXmiDJwTFdzm8tKBp2i0kkP1I3WjI19lmwJf 1hpsiHZ8i2rKRP5z9Bg== X-Proofpoint-GUID: k48lJb7CljLPFBJhcvVl881Kl2R8FCFm X-Proofpoint-ORIG-GUID: GHw6Rg5ACLDvhyGfPNgywl6s17nSxyaS X-Authority-Analysis: v=2.4 cv=DZknbPtW c=1 sm=1 tr=0 ts=6a1dc58d cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=FelO9ux0wxsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=VnNF1IyMAAAA:8 a=0QoH9A0xUf0yihFjRsoA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-01_05,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 suspectscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606010174 Content-Type: text/plain; charset="utf-8" Add a dedicated string helper file with a memchr wrapper that uses the kernel's instrumented memchr() function to ensure KASAN and FORTIFY_SOURCE protections are preserved for Rust code. Reported-by: Miguel Ojeda Link: https://lore.kernel.org/rust-for-linux/CANiq72mXAZc0sNM7ShX8VDVs_7zJd= dawP-e=3Dwt+ERr1YUCcWUw@mail.gmail.com/ Signed-off-by: Jan Polensky --- rust/helpers/helpers.c | 1 + rust/helpers/string.c | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 rust/helpers/string.c diff --git a/rust/helpers/helpers.c b/rust/helpers/helpers.c index 625921e27dfb..592b9bdb4e4a 100644 --- a/rust/helpers/helpers.c +++ b/rust/helpers/helpers.c @@ -88,6 +88,7 @@ #include "signal.c" #include "slab.c" #include "spinlock.c" +#include "string.c" #include "sync.c" #include "task.c" #include "time.c" diff --git a/rust/helpers/string.c b/rust/helpers/string.c new file mode 100644 index 000000000000..d04340dc9139 --- /dev/null +++ b/rust/helpers/string.c @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include + +void *rust_helper_memchr(const void *s, int c, size_t n) +{ + return memchr(s, c, n); +} \ No newline at end of file --=20 2.53.0 From nobody Mon Jun 8 05:25:27 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (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 AA6F23E0224; Mon, 1 Jun 2026 17:47:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780336031; cv=none; b=S0pERpbualcbmuUr4umTmbtFcuseu/cwcHaexGNp02kF2Ya2Y5B/0LkqDjbRRqZzlL2xiuHT62PbGw74eIMRnu0V+40qvtsTx/YH00FAWn6aVN4APaIEp2cNtyiuo3xRdsL+Khl7lAV9TqDVNGsFZadWPQ+oBEfD+OX3bpLyM+8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780336031; c=relaxed/simple; bh=s6g8kcj/uO9XZk83H3M5Nr5VLLmjQgkp2xoyTvCv50s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=U+V5JGNCdnWxnomo64RUEzR0M0uy5HAgg4c/ZqvNzw58yR1/dTpgLBtxFENo3Uw9TQoKSMJ81Op+Ms/Oi1meWmtmLuJMExhxNOvPjBhu27/HP4vWL+gdzABzAaTxT/j3s+pi9ARJwMmdNpJsAGWM8z/QFMphkLdSPjc0+rYdyTU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=iZGLC+FS; arc=none smtp.client-ip=148.163.158.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="iZGLC+FS" Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 651GVxbE3708195; Mon, 1 Jun 2026 17:46:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=GQ7gNmv1F+aGOr69G f7a+NCP5ld0x97wIY/UegH7zUs=; b=iZGLC+FSfpmJIgyMPXzI6Pp5WlBEoe1sL dCjxRVPi1q7wuLkVQCMz63vmuqDQExhNeUtKkEYAHpIpbDDu4pV3XDYzs5jEhHzH 5xM2xu4O3JDRxSD0ihbHBGfA8RXzglETROaghGr5oAY3o8F7HCFJRDv8+eWE5lRr l36j2PCFkRDwv8jdJTo3V5ajWrVmU7G1ueAsYT6xPQd05Jxv0DjP5M26rjRJL3or HlbrAH1xR0ITZNw6mHj9MQLdbBZ0+uYMhvOkx54ywGNDoQWZ1LiAv+zhspDpyYCj lN7RhwuFaJHY2OZBHcnboBEZ2ycvX2sydi0ElPI2oe1JVe+Gn0bMQ== Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4efpae1w2m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 01 Jun 2026 17:46:52 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 651Hd6eg025109; Mon, 1 Jun 2026 17:46:52 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4egakvqh3n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 01 Jun 2026 17:46:51 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 651HkmPY16777588 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 1 Jun 2026 17:46:48 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 43FF320040; Mon, 1 Jun 2026 17:46:48 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id F2A3B2004B; Mon, 1 Jun 2026 17:46:47 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.87.85.9]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 1 Jun 2026 17:46:47 +0000 (GMT) From: Jan Polensky To: hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com, ojeda@kernel.org, peterz@infradead.org, jpoimboe@kernel.org, jbaron@akamai.com, aliceryhl@google.com Cc: borntraeger@linux.ibm.com, svens@linux.ibm.com, boqun@kernel.org, gary@garyguo.net, bjorn3_gh@protonmail.com, lossin@kernel.org, a.hindborg@kernel.org, tmgross@umich.edu, dakr@kernel.org, rostedt@goodmis.org, ardb@kernel.org, linux-s390@vger.kernel.org, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, japo@linux.ibm.com (Jan Polensky) Subject: [PATCH v5 5/6] s390/cmpxchg: Fix KASAN stack-out-of-bounds in atomic helpers Date: Mon, 1 Jun 2026 19:46:24 +0200 Message-ID: <20260601174625.2910233-6-japo@linux.ibm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260601174625.2910233-1-japo@linux.ibm.com> References: <20260601174625.2910233-1-japo@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Authority-Analysis: v=2.4 cv=Zt3d7d7G c=1 sm=1 tr=0 ts=6a1dc58d cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=FelO9ux0wxsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=_2yia0w1AAAA:8 a=VnNF1IyMAAAA:8 a=9-FPAKYo-0jGICd3_CYA:9 a=4yAS8WwzZ1jAEY03B-5r:22 X-Proofpoint-GUID: oNAhO7AWIvZOwQFELP72dO1agTvTfy22 X-Proofpoint-ORIG-GUID: fWKlbdpq1bhD_RTRhLNI_UAvrFaMebOK X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjAxMDE3NCBTYWx0ZWRfX+Db5X3yvueAF VOwr+LpEUjkBC4ifMriIHAt0ZX+//F7BU5afrLWQZr4l0FRtJMZKDih6um9tPJBfX4louWajzRh u7o4vIaREmxQp2vjFBqtkeuhx/VaNjeVEAPAC74CREcfwC5v0ddFILxWtygK5Ud17n0NZS+zDkF 0UpSYXSvrMETQW9ROsSVJuPSbCUiOVg7ojJUz2mHYzo7Wuj/JVQ9xH+6vYb7rAs6biOLywB0hMh sCF6LfclpT+CWiAHG4Rf1WzB4ato5+R2zjUpr075PmQq2t2NCWs3mLzv0XZ+SVM4fdt6AFsmsjc KSGG95noDJG7ce2eUMQRANi1kwfPyeXt2Jm8RvzkpYDy+ZSsLKZb8qKDtXn9ed183+8nHaHLaqH AWSTM5cDauI+XKGpA+J3HAeTMMuON5KcemyBxk/CLUDqBiGojfBN+iUKhM/SFCueFleOtaS1avw BrDvWmPkNp4kgg8oI9g== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-01_05,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 phishscore=0 spamscore=0 malwarescore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606010174 Content-Type: text/plain; charset="utf-8" The __arch_cmpxchg1, __arch_cmpxchg2, __arch_xchg1, and __arch_xchg2 functions emulate 1-byte and 2-byte atomic operations using 4-byte cmpxchg instructions, since s390 lacks native 1/2-byte cmpxchg support. When KASAN is enabled, the READ_ONCE() operations in these functions trigger stack-out-of-bounds warnings because they perform 4-byte reads when only 1 or 2 bytes should be accessed. Mark these functions as __no_sanitize_or_inline to prevent KASAN instrumentation while maintaining correct functionality. This resolves the following KASAN error during rust_atomics KUnit tests: BUG: KASAN: stack-out-of-bounds in rust_helper_atomic_i8_xchg+0xb2/0xc0 Read of size 4 at addr 001bff7ffdbefcf0 by task kunit_try_catch/142 Reported-by: Miguel Ojeda Link: https://lore.kernel.org/rust-for-linux/CANiq72m4GVWFYqnxNtCHTPu7XcGew= HB5LNwOoayTfnXs9pPbNg@mail.gmail.com/ Suggested-by: Gary Guo Link: https://lore.kernel.org/rust-for-linux/DITFTAVVHTNQ.380OHUHGTOI6M@gar= yguo.net/ Signed-off-by: Jan Polensky --- arch/s390/include/asm/cmpxchg.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/s390/include/asm/cmpxchg.h b/arch/s390/include/asm/cmpxch= g.h index 008357996262..e6ac55cf3c17 100644 --- a/arch/s390/include/asm/cmpxchg.h +++ b/arch/s390/include/asm/cmpxchg.h @@ -35,7 +35,7 @@ static __always_inline u64 __csg_asm(u64 ptr, u64 old, u6= 4 new) return old; } =20 -static inline u8 __arch_cmpxchg1(u64 ptr, u8 old, u8 new) +static __no_sanitize_or_inline u8 __arch_cmpxchg1(u64 ptr, u8 old, u8 new) { union { u8 b[4]; @@ -58,7 +58,7 @@ static inline u8 __arch_cmpxchg1(u64 ptr, u8 old, u8 new) return old; } =20 -static inline u16 __arch_cmpxchg2(u64 ptr, u16 old, u16 new) +static __no_sanitize_or_inline u16 __arch_cmpxchg2(u64 ptr, u16 old, u16 n= ew) { union { u16 b[2]; @@ -173,7 +173,7 @@ static __always_inline u64 __arch_cmpxchg(u64 ptr, u64 = old, u64 new, int size) =20 void __xchg_called_with_bad_pointer(void); =20 -static inline u8 __arch_xchg1(u64 ptr, u8 x) +static __no_sanitize_or_inline u8 __arch_xchg1(u64 ptr, u8 x) { int shift =3D (3 ^ (ptr & 3)) << 3; u32 mask, old, new; @@ -188,7 +188,7 @@ static inline u8 __arch_xchg1(u64 ptr, u8 x) return old >> shift; } =20 -static inline u16 __arch_xchg2(u64 ptr, u16 x) +static __no_sanitize_or_inline u16 __arch_xchg2(u64 ptr, u16 x) { int shift =3D (2 ^ (ptr & 2)) << 3; u32 mask, old, new; --=20 2.53.0 From nobody Mon Jun 8 05:25:27 2026 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (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 5D92D3043CE; Mon, 1 Jun 2026 17:47:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780336040; cv=none; b=Wc1/jZqrZd+zoGM+FU4JDJ+uIHpKbg2LI/WEnMfHWn40/slTV33WdOrURKIiqERiz3ohoZ4/P9gibkSBd7soRQ30Ulz/czcEFqSrTTH3xKlMZkKcx29YtciXD2xZsZloBsrCvdkwyruIwHMCyFX85aSPriHm5TNAe8qJjzE2k6M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780336040; c=relaxed/simple; bh=+s4EAgt5oeCOZsZMGoJeB1wSEWIEp0X8A2PtY7urlc8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=f1isPkoNRQcZTu9PrG7qlGGyiJNkiUq59yY9EOLzs5vXxFmPAriX9UO9TLjedQsLHMilTmD4duY4e75piCEzYgW7I66ofP3QVqNOKe4n+NlhKopEcmK9s9FNhTzMXOP7zqp7N7ReB/GtZFujRPthsc6kfwlB+EKuKWXRnETKFPQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=kicStDHt; arc=none smtp.client-ip=148.163.156.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="kicStDHt" Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 651GPMMD1959545; Mon, 1 Jun 2026 17:46:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=DXiytoeGyO7kgBmmb h6FhjAYCwg4hBJWO7+aT3ceJig=; b=kicStDHt1DxqxFy6Av6RXJKh/tCQLPr5A MtQDbfuWkjY6Ns6RPviTVF2zKNb5evy48LhNDS9YQPSdttH1+i+0P4xLv9Wk8pNq UaPllsjGU4s/u3kZb6xY5za9trjJHOIeMEwYSrwHtQtjqIrUmLDEG7dix1Ni2U6z c0OYvfrDJ299n6b0zL96AL8qJYV70YEIG3JrBF4U1JVrDIShADiAz1xmhvO0+z8X +LwuGs7lkzRNrMcEkYmWXo6GfuXtAHs9jCe/RfxYZkiocjyb1820EqAKgmHeJsop 1hG0BMyB1dEHLQxUXc5L6FRs0s+cQPAdcXDmz/C3/8miSdb6d2W0w== 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 4efqm4t5sa-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 01 Jun 2026 17:46:53 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 651Hd6m5009469; Mon, 1 Jun 2026 17:46:52 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4egcegf602-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 01 Jun 2026 17:46:52 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 651HkmFH16777592 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 1 Jun 2026 17:46:48 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8FB8020040; Mon, 1 Jun 2026 17:46:48 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4980820043; Mon, 1 Jun 2026 17:46:48 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.87.85.9]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 1 Jun 2026 17:46:48 +0000 (GMT) From: Jan Polensky To: hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com, ojeda@kernel.org, peterz@infradead.org, jpoimboe@kernel.org, jbaron@akamai.com, aliceryhl@google.com Cc: borntraeger@linux.ibm.com, svens@linux.ibm.com, boqun@kernel.org, gary@garyguo.net, bjorn3_gh@protonmail.com, lossin@kernel.org, a.hindborg@kernel.org, tmgross@umich.edu, dakr@kernel.org, rostedt@goodmis.org, ardb@kernel.org, linux-s390@vger.kernel.org, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, japo@linux.ibm.com (Jan Polensky) Subject: [PATCH v5 6/6] s390: Enable Rust support Date: Mon, 1 Jun 2026 19:46:25 +0200 Message-ID: <20260601174625.2910233-7-japo@linux.ibm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260601174625.2910233-1-japo@linux.ibm.com> References: <20260601174625.2910233-1-japo@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-GUID: zLNKOTYxxpM0m-Y2XKpaULcA3P5npdVC X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjAxMDE3NCBTYWx0ZWRfX6Zzla8HUBsAL umXcf/EdSgQ32Ufp7x+gSykULozrLT5ACZpFxQKDoQRcaAAhf277VJQI3LUcmcXSaJNTk0udI7q IcbF25mYJOnYBeLlS4LZFr/Uw+GZdSKhGA6XICR7gVOIFsaJmtzYMbOQWZJ/Bvs4ZUt/np4E3Ge nHqikgCj9jycXsGxWQky0JgnTW1yyPDqY9Y8mVdWoHYh7Zm8vRVZp0Ze2s8pWq9NPyHpxAiua4G OgHQpyoHRZTR77qv6DlVhu1WZ2sdCbefMhvgU1JFo9ebpHGbbXyBWSJT8+1sO7xZIdYlOCEE36j rskhnV0WDMIhaoDCV7jXldyjo/UftOItGAPMW+ltVrwpAZJzr5jpODfK7iwWLKYSK0XnOrfK7/I 9pEGZGgBKkCxixXquTcfK5XPIlGHugrsWsOdPMqW4ixPuInV+faBaSzgetDm1PRzkjd4QPFVP/G 6G8bBPovLiK5pfhyRqw== X-Proofpoint-ORIG-GUID: Ej5xcbn-zXfQYZVXZGXCrjL6g2DHWYvf X-Authority-Analysis: v=2.4 cv=Vf3H+lp9 c=1 sm=1 tr=0 ts=6a1dc58d cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=FelO9ux0wxsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=U7nrCbtTmkRpXpFmAIza:22 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=dVHDsLM4Y7J7NbvvS_QA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-01_05,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 adultscore=0 bulkscore=0 impostorscore=0 phishscore=0 lowpriorityscore=0 malwarescore=0 clxscore=1015 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606010174 Content-Type: text/plain; charset="utf-8" Enable building Rust code on s390 by wiring the architecture into the kernel Rust infrastructure. Add s390 to the Rust arch support documentation, provide the s390 Rust target and required compiler flags, and set the bindgen target for arch/s390. Adjust the Rust target generation and minimum rustc version gating so the s390 setup is handled explicitly. The Rust toolchain uses the "s390x" triple naming for the 64 bit target. Rust support is currently incompatible with CONFIG_EXPOLINE, which relies on compiler support for the -mindirect-branch=3D and -mfunction_return=3D options. Therefore, select HAVE_RUST only when EXPOLINE is disabled. Acked-by: Miguel Ojeda Signed-off-by: Jan Polensky --- Documentation/rust/arch-support.rst | 1 + arch/s390/Kconfig | 1 + arch/s390/Makefile | 28 +++++++++++++++++----------- rust/Makefile | 1 + scripts/generate_rust_target.rs | 2 ++ scripts/min-tool-version.sh | 6 +++++- 6 files changed, 27 insertions(+), 12 deletions(-) diff --git a/Documentation/rust/arch-support.rst b/Documentation/rust/arch-= support.rst index 6e6a515d0899..4f980815e92a 100644 --- a/Documentation/rust/arch-support.rst +++ b/Documentation/rust/arch-support.rst @@ -19,6 +19,7 @@ Architecture Level of support Constraints ``arm64`` Maintained Little Endian only. ``loongarch`` Maintained \- ``riscv`` Maintained ``riscv64`` and LLVM/Clang only. +``s390`` Maintained ``CONFIG_EXPOLINE`` must be disabled. ``um`` Maintained \- ``x86`` Maintained ``x86_64`` only. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index ecbcbb781e40..26951781d74d 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -248,6 +248,7 @@ config S390 select HAVE_RELIABLE_STACKTRACE select HAVE_RETHOOK select HAVE_RSEQ + select HAVE_RUST if !EXPOLINE select HAVE_SAMPLE_FTRACE_DIRECT select HAVE_SAMPLE_FTRACE_DIRECT_MULTI select HAVE_SETUP_PER_CPU_AREA diff --git a/arch/s390/Makefile b/arch/s390/Makefile index 297976b41088..8b712cd85fcd 100644 --- a/arch/s390/Makefile +++ b/arch/s390/Makefile @@ -35,25 +35,31 @@ KBUILD_CFLAGS_DECOMPRESSOR +=3D $(if $(CONFIG_DEBUG_INF= O),-g) KBUILD_CFLAGS_DECOMPRESSOR +=3D $(if $(CONFIG_DEBUG_INFO_DWARF4), $(call c= c-option, -gdwarf-4,)) KBUILD_CFLAGS_DECOMPRESSOR +=3D $(if $(CONFIG_CC_NO_ARRAY_BOUNDS),-Wno-arr= ay-bounds) =20 +KBUILD_RUSTFLAGS +=3D --target=3Ds390x-unknown-none-softfloat -Zpacked-sta= ck -Ctarget-feature=3D+backchain + UTS_MACHINE :=3D s390x STACK_SIZE :=3D $(if $(CONFIG_KASAN),65536,$(if $(CONFIG_KMSAN),65536,1638= 4)) CHECKFLAGS +=3D -D__s390__ -D__s390x__ =20 export LD_BFD =20 -mflags-$(CONFIG_MARCH_Z10) :=3D -march=3Dz10 -mflags-$(CONFIG_MARCH_Z196) :=3D -march=3Dz196 -mflags-$(CONFIG_MARCH_ZEC12) :=3D -march=3DzEC12 -mflags-$(CONFIG_MARCH_Z13) :=3D -march=3Dz13 -mflags-$(CONFIG_MARCH_Z14) :=3D -march=3Dz14 -mflags-$(CONFIG_MARCH_Z15) :=3D -march=3Dz15 -mflags-$(CONFIG_MARCH_Z16) :=3D -march=3Dz16 -mflags-$(CONFIG_MARCH_Z17) :=3D -march=3Dz17 +march-name-$(CONFIG_MARCH_Z10) :=3D z10 +march-name-$(CONFIG_MARCH_Z196) :=3D z196 +march-name-$(CONFIG_MARCH_ZEC12) :=3D zEC12 +march-name-$(CONFIG_MARCH_Z13) :=3D z13 +march-name-$(CONFIG_MARCH_Z14) :=3D z14 +march-name-$(CONFIG_MARCH_Z15) :=3D z15 +march-name-$(CONFIG_MARCH_Z16) :=3D z16 +march-name-$(CONFIG_MARCH_Z17) :=3D z17 =20 -export CC_FLAGS_MARCH :=3D $(mflags-y) +mflags :=3D -march=3D$(march-name-y) =20 -aflags-y +=3D $(mflags-y) -cflags-y +=3D $(mflags-y) +export CC_FLAGS_MARCH :=3D $(mflags) + +aflags-y +=3D $(mflags) +cflags-y +=3D $(mflags) + +KBUILD_RUSTFLAGS +=3D -Ctarget-cpu=3D$(march-name-y) =20 cflags-$(CONFIG_MARCH_Z10_TUNE) +=3D -mtune=3Dz10 cflags-$(CONFIG_MARCH_Z196_TUNE) +=3D -mtune=3Dz196 diff --git a/rust/Makefile b/rust/Makefile index b9e9f512cec3..77460502f576 100644 --- a/rust/Makefile +++ b/rust/Makefile @@ -403,6 +403,7 @@ BINDGEN_TARGET_x86 :=3D x86_64-linux-gnu BINDGEN_TARGET_arm64 :=3D aarch64-linux-gnu BINDGEN_TARGET_arm :=3D arm-linux-gnueabi BINDGEN_TARGET_loongarch :=3D loongarch64-linux-gnusf +BINDGEN_TARGET_s390 :=3D s390x-linux-gnu # This is only for i386 UM builds, which need the 32-bit target not -m32 BINDGEN_TARGET_i386 :=3D i386-linux-gnu BINDGEN_TARGET_um :=3D $(BINDGEN_TARGET_$(SUBARCH)) diff --git a/scripts/generate_rust_target.rs b/scripts/generate_rust_target= .rs index 38b3416bb979..8f1df6819d0b 100644 --- a/scripts/generate_rust_target.rs +++ b/scripts/generate_rust_target.rs @@ -256,6 +256,8 @@ fn main() { } } else if cfg.has("LOONGARCH") { panic!("loongarch uses the builtin rustc loongarch64-unknown-none-= softfloat target"); + } else if cfg.has("S390") { + panic!("s390 uses the builtin rustc s390x-unknown-none-softfloat t= arget"); } else { panic!("Unsupported architecture"); } diff --git a/scripts/min-tool-version.sh b/scripts/min-tool-version.sh index b96ec2d379b6..296acf8f71aa 100755 --- a/scripts/min-tool-version.sh +++ b/scripts/min-tool-version.sh @@ -31,7 +31,11 @@ llvm) fi ;; rustc) - echo 1.85.0 + if [ "$SRCARCH" =3D "s390" ]; then + echo 1.96.0 + else + echo 1.85.0 + fi ;; bindgen) echo 0.71.1 --=20 2.53.0