From nobody Fri Dec 19 09:51:25 2025 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 B0D82322B69; Tue, 9 Dec 2025 12:17:14 +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=1765282636; cv=none; b=TEW8r4HEvQRb+c0ze32ckG+3bS/5Fped6WCYkRLfus5NThfyXeXPcU8/6C0DitkNZ19F14PGaGDdgxWGEpq0iqZzoQJOegSI9rdmmsOmwY+qPmmkXEC2esRTosERnF8xnDPM+54sUHcFCGJpYOkjXwlh5lmyb6Cg0y6Y9PuAUPs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765282636; c=relaxed/simple; bh=d2L6w3v2cTFbHTO7k3Nn/r8rw1Ef6rrvSAOp7t6GWDM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kz9p7OI/dQJP2oEZmkXK/6s7akpqlWVHwYmTrn0r1Z6upKvfmyaRNBQyovKUBC1FIprxF2LFMQZqMciPz8wS4bL9RbNOTt9y7i7BKjaUoxKdTwPCIqbPFPueDvhJGD9WzxQgDRoesQE7bLtyEkKjEl8uyb+mHGVOO1QPmnUmm0w= 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=IPIkGcGz; 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="IPIkGcGz" Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5B93GnKl023046; Tue, 9 Dec 2025 12:17:06 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=mILDbajNj862vQBLT IK8ZvtTVVxawvtKU+q8Ju17tAg=; b=IPIkGcGzdldxnFWrC2rHBj0cd2yxn/2ZS BXOaDLnfX5i6WzEg2JWRDvd3duK0XJl4UkFIwKB36Kt5XIM4X+7mH0SNvm0SntlE z7aoDskgH4BkSno2e0hZ5+PiyMYuvLm2iefLEyDfvPgpzlgmeaV8hbqq5ijFn6jZ xJcFjXn6DafwnjgKFrE1AwSmze4KG6C7suJ4/4Ul4lYQq+mUFmkR9MIkqN/1a08r qCUaTCjl7UQEsr0FMYZFnnj6vkKbNeC+yFYrCcQgwZrBSjDd4LKcRAjZcP9iYHep MdbfOuYTNnVPX9XZwLtW4W16RY1moUcBTjCkIo2grfRBEGaP5Rh3g== Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4avc53c442-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Dec 2025 12:17:06 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5B9Aag50030254; Tue, 9 Dec 2025 12:17:05 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4avxts2xjj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Dec 2025 12:17:05 +0000 Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com [10.20.54.102]) by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 5B9CH1jN51511754 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 9 Dec 2025 12:17:02 GMT Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CAA8620043; Tue, 9 Dec 2025 12:17:01 +0000 (GMT) Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 94FEC2004F; Tue, 9 Dec 2025 12:17:01 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.87.85.9]) by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 9 Dec 2025 12:17:01 +0000 (GMT) From: Heiko Carstens To: Alexander Gordeev , Sven Schnelle , Vasily Gorbik , Christian Borntraeger , Peter Zijlstra , Mark Rutland , Arnd Bergmann , Jens Remus , Stefan Schulze Frielinghaus , Juergen Christ Cc: linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org Subject: [PATCH 1/9] kbuild: Require gcc-9 for s390 Date: Tue, 9 Dec 2025 13:16:53 +0100 Message-ID: <20251209121701.1856271-2-hca@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251209121701.1856271-1-hca@linux.ibm.com> References: <20251209121701.1856271-1-hca@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-Spam-Details-Enc: AW1haW4tMjUxMjA2MDAyMCBTYWx0ZWRfXwcaxYXPyPApc gGHNb+ZaNvu5GnlHZSRWJjqhAHrUuQ4h4aNiU9PsdN0FQcBmN9jFGPaOSSLrA8aY7YhEIZVZWI+ zOTeVtu8byepM4kPPppcprNuYocVGqVtJh5KJBA1BkBJRHoRMdjSLag6u6E4o4cwj4z40lq0J5S pQ2BQDxvkZ1W64JzXrqAMngR10TJwXHuzhNlhp3i5mycFbjcMMws0kErUOPUfygYT0Y9/O+JGkQ sjzXUNv25e6mJACg6b7XXkZqkipqhyjpdsvVNWUG4wVbpC3863c9p1kZMQcyI8IOa5i1Z2fCaK1 yP96zpRVXI62iNnph6cO5di4GYkmS5fjUOtQJQqBWTigk44BSJPmb2IQTQvUHBUZ4agHTa5jfzs Ed3j/5SC8f0vcig4O/wZo+6SuaDD3A== X-Authority-Analysis: v=2.4 cv=S/DUAYsP c=1 sm=1 tr=0 ts=69381342 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=TbMndkmT-6wVJWDlugAA:9 X-Proofpoint-ORIG-GUID: UW3ngKb1Qw9RbMlqlnABqvUqEtwoCqB_ X-Proofpoint-GUID: UW3ngKb1Qw9RbMlqlnABqvUqEtwoCqB_ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-09_02,2025-12-04_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0 clxscore=1015 impostorscore=0 suspectscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 bulkscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2512060020 Content-Type: text/plain; charset="utf-8" Upcoming changes to s390 specific inline assemblies require the usage of strings as immediate input operands. This works only with gcc-9 and newer compilers. With gcc-8 this leads to a compile error: void bar(void) { asm volatile("" :: "i" ("foo")); } Results in: In function 'bar': warning: asm operand 0 probably doesn't match constraints asm volatile("" :: "i" ("foo")); ^~~ error: impossible constraint in 'asm' Bump the minimal gcc version from gcc-8 to gcc-9 for s390 to solve this problem. Signed-off-by: Heiko Carstens --- scripts/min-tool-version.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/min-tool-version.sh b/scripts/min-tool-version.sh index 99b5575c1ef7..1cacd389f29b 100755 --- a/scripts/min-tool-version.sh +++ b/scripts/min-tool-version.sh @@ -19,6 +19,8 @@ binutils) gcc) if [ "$ARCH" =3D parisc64 ]; then echo 12.0.0 + elif [ "$ARCH" =3D s390 ]; then + echo 9.1.0 else echo 8.1.0 fi --=20 2.51.0 From nobody Fri Dec 19 09:51:25 2025 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 97457322B67; Tue, 9 Dec 2025 12:17:14 +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=1765282636; cv=none; b=jtBjlrEQrMQtZbbQ8unpSpXaBeUgJW/hMn+EuKFLNdd42PoF952QS4YWXsLvf79v2RoZ0hPaGpiQpzGMxpsIIdjnNR7+AZIyeCjwwqWcCNuk1NdAntneh0jh3mLQkN2rHm6HZzpcnvReqg8uGOQbzsYmCjR3L0/CmfYLR/F7pek= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765282636; c=relaxed/simple; bh=5eFzsiFl/P17OXxhiM+WV1YJZTXLQzoSb9eZAyj/jIk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=muuZQtmZnOLNQWZWDY7DzS6Dpwsc11hjVXYt27s6WB3tS7lGrpDjYRGdN3F6Bk34L8Esntzrn2JjODMb4xzSqDoLO5eKww7V4Wgpfy/lyrAYnpDfl0/nKZcSwWd7bNmsnBu08ZkmP7D26LEeMdRJT2xgMZjeK437pZ4v3kfJ3hc= 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=rTAw5mj8; 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="rTAw5mj8" Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5B9AgGqe016858; Tue, 9 Dec 2025 12:17:06 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=74tm+C zkfwW6ByXYcCFxHiGIFYnJhJLfCO/A4PQjn9A=; b=rTAw5mj83EBRVfbDoY4hg7 DhDMr/1lR1Sll5xxzHQxYTIP5r1U0hn1gPr6jyC0xbshML4QCVVDes2DIQa1RasP ht3RufaMdsT1TrpZDFHKGNv2U+PGPa6uNhr1mAOw0fKIa7nosAXKgTt+vcqdHWbF u5o356tQrLvzWAq2cl8PyqC7y2ikKLjGuXIuszQawW47CslGK3ROrHn9MBhHdFzE F7AOQL2KEvUI/y7Fe6MZ0GoD6aHRfzwgZPy+nrXEMyEF8VLZrNbEM6FZQLSbORkj z7L1p3j8VDmH5kuH1IW0/2THBUzq5EjYtfTX/PTuPPudf61xyJ3whMkhItI3fZJQ == Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4av9wvmdnr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Dec 2025 12:17:06 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5B9Aag4x030254; Tue, 9 Dec 2025 12:17:05 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4avxts2xjh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Dec 2025 12:17:05 +0000 Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com [10.20.54.102]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 5B9CH2Up24773330 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 9 Dec 2025 12:17:02 GMT Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 07E2B2004E; Tue, 9 Dec 2025 12:17:02 +0000 (GMT) Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CFA022004B; Tue, 9 Dec 2025 12:17:01 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.87.85.9]) by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 9 Dec 2025 12:17:01 +0000 (GMT) From: Heiko Carstens To: Alexander Gordeev , Sven Schnelle , Vasily Gorbik , Christian Borntraeger , Peter Zijlstra , Mark Rutland , Arnd Bergmann , Jens Remus , Stefan Schulze Frielinghaus , Juergen Christ Cc: linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org Subject: [PATCH 2/9] s390/bug: Convert to inline assembly with input operands Date: Tue, 9 Dec 2025 13:16:54 +0100 Message-ID: <20251209121701.1856271-3-hca@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251209121701.1856271-1-hca@linux.ibm.com> References: <20251209121701.1856271-1-hca@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-GUID: 4tbiLz7dGGWj4acycLqn-hJQDHHgi_zf X-Proofpoint-ORIG-GUID: 4tbiLz7dGGWj4acycLqn-hJQDHHgi_zf X-Authority-Analysis: v=2.4 cv=AdS83nXG c=1 sm=1 tr=0 ts=69381342 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=36klhH69ptpTDPabKO0A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjA2MDAwMCBTYWx0ZWRfX5nAG4nwOJKV8 W4z3dewj0Xi4vHYOEHoNYjqRixpFx+5Nkhhb39mKMjiUcGMlGpQn097NMSreLenbQH0V3R4QfyB eigqnNV6MF+35xN/BgS2mQoztORBrXUs3DZAbAD6LJI6MdOO2e+rQMdWzDlsGey25tCMNtYzgRN HnVUqRWaElZZQ9rrwvxaQfe2F/delW/5AtOb03hNucFDJ3Dxq81p2cJ8cUS0Z5/FUjFazJsLliW tyEIq0dkptktj4SxkwqhY8NmNjqxubxNkRdJueXHJvoHaW3/J+iJ9CEjBE2E/IlP5ddkYKVc6uf sD2gqZbSGgjkUFYQtZXyFFhcfzuVGbKepoOYeXJAw6VJeRagq7X/UIbYHTM4cgPJEUSZw6z4n/f C7wXmac4y8lLkRdwPfdAJoMLqYD2lw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-09_02,2025-12-04_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 priorityscore=1501 spamscore=0 phishscore=0 lowpriorityscore=0 bulkscore=0 clxscore=1015 malwarescore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2512060000 Rewrite the bug inline assembly so it uses input operands again instead of pure macro replacements. This more or less reverts the conversion done when 'cond_str' support was added [1]. Reason for this is that the upcoming __WARN_printf() implementation requires an inline assembly with an output operand. At the same time input strings (format specifier and condition string) may contain the special '%' character. As soon as an inline assembly is specified to have input/output operands the '%' has a special meaning: e.g. converting the existing #define __BUG_FLAGS(cond_str, flags) \ asm_inline volatile(__stringify(ASM_BUG_FLAGS(cond_str, flags))); to #define __BUG_FLAGS(cond_str, flags) \ asm_inline volatile(__stringify(ASM_BUG_FLAGS(cond_str, flags))::); will result in a compile error as soon as 'cond_str' contains a '%' character: net/core/neighbour.c: In function =E2=80=98neigh_table_init=E2=80=99: ././include/linux/compiler_types.h:546:20: error: invalid 'asm': invalid %-= code ... net/core/neighbour.c:1838:17: note: in expansion of macro =E2=80=98WARN_ON= =E2=80=99 1838 | WARN_ON(tbl->entry_size % NEIGH_PRIV_ALIGN); | ^~~~~~~ Convert the code, use immediate operands, and also add comments similar to x86 which are emitted to the generated assembly file, which makes debugging much easier. [1] 6584ff203aec ("bugs/s390: Use 'cond_str' in __EMIT_BUG()") Signed-off-by: Heiko Carstens --- arch/s390/include/asm/bug.h | 71 ++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 41 deletions(-) diff --git a/arch/s390/include/asm/bug.h b/arch/s390/include/asm/bug.h index ee9221bb5d18..61496143a382 100644 --- a/arch/s390/include/asm/bug.h +++ b/arch/s390/include/asm/bug.h @@ -2,55 +2,44 @@ #ifndef _ASM_S390_BUG_H #define _ASM_S390_BUG_H =20 -#include +#include =20 #ifdef CONFIG_BUG =20 -#ifndef CONFIG_DEBUG_BUGVERBOSE -#define _BUGVERBOSE_LOCATION(file, line) +#ifdef CONFIG_DEBUG_BUGVERBOSE +#define __BUG_ENTRY_VERBOSE(file, line) \ + " .long " file " - . # bug_entry::file\n" \ + " .short " line " # bug_entry::line\n" #else -#define __BUGVERBOSE_LOCATION(file, line) \ - .pushsection .rodata.str, "aMS", @progbits, 1; \ - .align 2; \ - 10002: .ascii file "\0"; \ - .popsection; \ - \ - .long 10002b - .; \ - .short line; -#define _BUGVERBOSE_LOCATION(file, line) __BUGVERBOSE_LOCATION(file, line) +#define __BUG_ENTRY_VERBOSE(file, line) #endif =20 -#ifndef CONFIG_GENERIC_BUG -#define __BUG_ENTRY(cond_str, flags) -#else -#define __BUG_ENTRY(cond_str, flags) \ - .pushsection __bug_table, "aw"; \ - .align 4; \ - 10000: .long 10001f - .; \ - _BUGVERBOSE_LOCATION(WARN_CONDITION_STR(cond_str) __FILE__, __LINE__) \ - .short flags; \ - .popsection; \ - 10001: -#endif - -#define ASM_BUG_FLAGS(cond_str, flags) \ - __BUG_ENTRY(cond_str, flags) \ - mc 0,0 - -#define ASM_BUG() ASM_BUG_FLAGS("", 0) - -#define __BUG_FLAGS(cond_str, flags) \ - asm_inline volatile(__stringify(ASM_BUG_FLAGS(cond_str, flags))); - -#define __WARN_FLAGS(cond_str, flags) \ -do { \ - __BUG_FLAGS(cond_str, BUGFLAG_WARNING|(flags)); \ +#define __BUG_ASM(cond_str, flags) \ +do { \ + asm_inline volatile("\n" \ + "0: mc 0,0\n" \ + " .section __bug_table,\"aw\"\n" \ + "1: .long 0b - . # bug_entry::bug_addr\n" \ + __BUG_ENTRY_VERBOSE("%[file]", "%[line]") \ + " .short %[flgs] # bug_entry::flags\n" \ + " .org 1b+%[size]\n" \ + " .previous" \ + : \ + : [file] "i" (WARN_CONDITION_STR(cond_str) __FILE__), \ + [line] "i" (__LINE__), \ + [flgs] "i" (flags), \ + [size] "i" (sizeof(struct bug_entry))); \ } while (0) =20 -#define BUG() \ -do { \ - __BUG_FLAGS("", 0); \ - unreachable(); \ +#define BUG() \ +do { \ + __BUG_ASM("", 0); \ + unreachable(); \ +} while (0) + +#define __WARN_FLAGS(cond_str, flags) \ +do { \ + __BUG_ASM(cond_str, BUGFLAG_WARNING | (flags)); \ } while (0) =20 #define HAVE_ARCH_BUG --=20 2.51.0 From nobody Fri Dec 19 09:51:25 2025 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 B3108322C60; Tue, 9 Dec 2025 12:17:19 +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=1765282641; cv=none; b=PHkpN1ZPd5v07bHZFJ9FAfoTWfCfaNzNCvELyllUQBwOgSz1/Hp8lCWZ6jC09rPpiwPBpaVs+Lf3qSuWuKQxyssSkvyPhzlmAdrQDUGETU3urADEOtkbSc5M46DrEBvK2K49HkqfNooOmmbku6tJgfiVbrxdLnfXGXgDYApn4pc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765282641; c=relaxed/simple; bh=UDGmtkfo5pC5WgRYjTtEptOjFClgTjlbQFPUYawf5bs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aVmmHS5WvPxgrpm8ICSivHdjbHyYMre+Ic5K4AQuaoslswacuslefjO6s98ZmZRLW+WAqPBMhaie+5io12vGNvMSiKqdJydbEzhv9GLRTjfbngtl8flDlviKe2McAXz0JA+CWwDnU1DK/E9zFepv9XSyb3OAiVy2ecFCQYRBlLQ= 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=QIPepZkF; 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="QIPepZkF" Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5B9AGpcW027524; Tue, 9 Dec 2025 12:17:07 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=dAO6jDF7wzF8fbAN7 X1asNEDmuL53nUTsOjcZDVPK4U=; b=QIPepZkFBxHZzb1zCzwhui0ll0cuJQL2H Qkhws15WvQcJRR2bFM68anXYKEpY+QVGit+tKMMhf0aNAzoP19nbOFATG3tJN1ZO 6aJ77MVOqZM2jopfxXodLM0qcGMIv26NigHqdVGIxZqd8vXHMo2EHzblDJVM90y8 6J1ChnJMXnOeMZt0Kiokaj91psz39CTSGdFHd5cxEitsG9AG259OHpBsvboqk8fR sdfa9NW4TIo7XXAAoNZLpnCT1MkDhWFBdNizOvYe/le6RsirBJU/5pGBZm/azPU0 fD/7cuHFINmruWfANUFL+I6uzxyicUK5I6Zndgg6e/rF6dayqn59g== 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 4avc61crdj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Dec 2025 12:17:07 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5B9C2o8L002103; Tue, 9 Dec 2025 12:17:06 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4aw11jak9d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Dec 2025 12:17:06 +0000 Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com [10.20.54.102]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 5B9CH2Be13173014 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 9 Dec 2025 12:17:02 GMT Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3838620040; Tue, 9 Dec 2025 12:17:02 +0000 (GMT) Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0CDCF2004F; Tue, 9 Dec 2025 12:17:02 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.87.85.9]) by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 9 Dec 2025 12:17:02 +0000 (GMT) From: Heiko Carstens To: Alexander Gordeev , Sven Schnelle , Vasily Gorbik , Christian Borntraeger , Peter Zijlstra , Mark Rutland , Arnd Bergmann , Jens Remus , Stefan Schulze Frielinghaus , Juergen Christ Cc: linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org Subject: [PATCH 3/9] s390/bug: Use BUG_FORMAT for DEBUG_BUGVERBOSE_DETAILED Date: Tue, 9 Dec 2025 13:16:55 +0100 Message-ID: <20251209121701.1856271-4-hca@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251209121701.1856271-1-hca@linux.ibm.com> References: <20251209121701.1856271-1-hca@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-Spam-Details-Enc: AW1haW4tMjUxMjA2MDAyMCBTYWx0ZWRfX7jLre2gjXI/M TuVkB2cHCnL7wH5jACVuFX6v8OnbuDXQYypVJFEcviLMxE1b+SnCOpUOKhNAzKftRxDOX5bnZqg EnE6JIcqtjKhhozGEOAY5kyy/+QiFwVObTiEQnDy4FDyF2CBc0Om5HKdK7Dyr0OwelA+js0Zs0T /CXk3Y+1GkgRns02i2RdyZ61iJHYU53GBSjtuJkkZVH+IvqgKtYtfit8wonHje80c3jEluDIXx0 A0GGPF2XRXZIie0KvyTenaN+IK/ufn2lUFxJM4NPY3LkcmWjRPvPt+uxfGamnYUfU9224p8CTOl 2JQDhHVRcElq+AMO8cOPLybL7NYqiMHQu0xD4L9XOdiNALzdjPmlmSR1fedmzSu/0v0B+7qMZhP nP/PEaoUEe+FnS00JG0wI1Dln7Q8Kg== X-Proofpoint-GUID: ajk-IGSTWA516j5O_a4zneAKgReJXc0h X-Proofpoint-ORIG-GUID: ajk-IGSTWA516j5O_a4zneAKgReJXc0h X-Authority-Analysis: v=2.4 cv=O/U0fR9W c=1 sm=1 tr=0 ts=69381343 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=O2IXE32GeF35JuYD2fkA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-09_02,2025-12-04_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 bulkscore=0 clxscore=1015 phishscore=0 suspectscore=0 adultscore=0 spamscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2512060020 Content-Type: text/plain; charset="utf-8" This is just the s390 variant of commit 4f1b701f24be ("x86/bug: Use BUG_FORMAT for DEBUG_BUGVERBOSE_DETAILED"). Signed-off-by: Heiko Carstens --- arch/s390/include/asm/bug.h | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/arch/s390/include/asm/bug.h b/arch/s390/include/asm/bug.h index 61496143a382..5a635158cbad 100644 --- a/arch/s390/include/asm/bug.h +++ b/arch/s390/include/asm/bug.h @@ -7,11 +7,18 @@ #ifdef CONFIG_BUG =20 #ifdef CONFIG_DEBUG_BUGVERBOSE -#define __BUG_ENTRY_VERBOSE(file, line) \ +#define __BUG_ENTRY_VERBOSE(format, file, line) \ + " .long " format " - . # bug_entry::format\n" \ " .long " file " - . # bug_entry::file\n" \ " .short " line " # bug_entry::line\n" #else -#define __BUG_ENTRY_VERBOSE(file, line) +#define __BUG_ENTRY_VERBOSE(format, file, line) +#endif + +#ifdef CONFIG_DEBUG_BUGVERBOSE_DETAILED +#define WARN_CONDITION_STR(cond_str) cond_str +#else +#define WARN_CONDITION_STR(cond_str) "" #endif =20 #define __BUG_ASM(cond_str, flags) \ @@ -20,12 +27,13 @@ do { \ "0: mc 0,0\n" \ " .section __bug_table,\"aw\"\n" \ "1: .long 0b - . # bug_entry::bug_addr\n" \ - __BUG_ENTRY_VERBOSE("%[file]", "%[line]") \ + __BUG_ENTRY_VERBOSE("%[frmt]", "%[file]", "%[line]") \ " .short %[flgs] # bug_entry::flags\n" \ " .org 1b+%[size]\n" \ " .previous" \ : \ - : [file] "i" (WARN_CONDITION_STR(cond_str) __FILE__), \ + : [frmt] "i" (WARN_CONDITION_STR(cond_str)), \ + [file] "i" (__FILE__), \ [line] "i" (__LINE__), \ [flgs] "i" (flags), \ [size] "i" (sizeof(struct bug_entry))); \ @@ -43,6 +51,7 @@ do { \ } while (0) =20 #define HAVE_ARCH_BUG +#define HAVE_ARCH_BUG_FORMAT =20 #endif /* CONFIG_BUG */ =20 --=20 2.51.0 From nobody Fri Dec 19 09:51:25 2025 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 CA6DA322B88; Tue, 9 Dec 2025 12:17:24 +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=1765282646; cv=none; b=K23R04TLZ+XXl+LdcQAmhUBsrwCnZsd1bp7EWGxzZcoOtysVMUkMH9rjrld2ImS2oQaANJoMJwci3LH5i6M/Ubdw9jAEIz6jeLDqbjDBX5ezM8D/6wIpp9D33/Md7Q7BfAuJEVQgmyXN4WW9K648owQewxrZHRVxQnskvEYLfP4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765282646; c=relaxed/simple; bh=tlPlwCGYgMBUjzd0QJiiPXC9FJ9nYBH5Zkn1ttWYIJ4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NHpM6j0ZKLIkHEfrHLmC0ulvUGiqCmUJgLsoD7f2wrnvMr36NNIf2Tdg+rJKQ+TMhJ+tbDcpK9xyRP7OY/9vdmOeEs6vo7kMegTPe4COPWiJ6+jx+rYYYkqmY3Qu4YXof55ourEFEm8PnRg7nO6/NIWj47srZlUejVvIxsleryk= 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=FK0ZXTRs; 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="FK0ZXTRs" Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5B99Vx7X002462; Tue, 9 Dec 2025 12:17:11 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=Mco84vDQwVMoTlRTI mYE3TmP3tQMcXaXnoH93sMmm1c=; b=FK0ZXTRsYObHMmHIEh8WK7W0bKdf5UKz6 Lzw0m0bGBzsjjlCkCYsCeBzofvkM+ceL7A1p90hu5BHyLjeNwnMlmZ/Fm+olO+tw 8ty/TBCaGtlHHoeHCBtSW4j3iYp7m991U1qc6MAsHDnxsF8zsDwbd4Zy+hwCg6b8 XBqtiM02FWaveJuXL3B8Hz2hFg/gJV37BxIFnM5jallOur2twN+XR8mFgj80sS1S UCAUpzctFLX8CcpH+ze7y2eaCQHiG41/S3MRA0AQ+7anxu5Kp7KPAlbftQGPlZWX hin6NzYG6NE1VoZ4Z7PZ0rpXdotHdfCY0hv0Q4lS9zRcbDCLdR38Q== Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4avc61crds-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Dec 2025 12:17:10 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5B98lQXm026789; Tue, 9 Dec 2025 12:17:09 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4aw1h12fuv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Dec 2025 12:17:07 +0000 Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com [10.20.54.102]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 5B9CH2Rl13173016 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 9 Dec 2025 12:17:02 GMT Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 6BBC920040; Tue, 9 Dec 2025 12:17:02 +0000 (GMT) Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3CF5C20043; Tue, 9 Dec 2025 12:17:02 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.87.85.9]) by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 9 Dec 2025 12:17:02 +0000 (GMT) From: Heiko Carstens To: Alexander Gordeev , Sven Schnelle , Vasily Gorbik , Christian Borntraeger , Peter Zijlstra , Mark Rutland , Arnd Bergmann , Jens Remus , Stefan Schulze Frielinghaus , Juergen Christ Cc: linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org Subject: [PATCH 4/9] s390/bug: Introduce and use monitor code macro Date: Tue, 9 Dec 2025 13:16:56 +0100 Message-ID: <20251209121701.1856271-5-hca@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251209121701.1856271-1-hca@linux.ibm.com> References: <20251209121701.1856271-1-hca@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-Spam-Details-Enc: AW1haW4tMjUxMjA2MDAyMCBTYWx0ZWRfX0L38cm8u+2WR qnvaXxynDAi1WnrmketIoyPRBptD0rQ8EiZhk5Wc5OOSShckCOtg+AOuIpT+NjU1HLmazerLlw5 ILiCS2FEkX6dcgGpQHIdTQaO68kp3a01g4v6Bqhe2bq13SpQ2wE6rbtztU9jN+W841kiT4TB0oW 9UKQL5HfDzmLALWm1KUBSkRxiE3Vkk5Mc2qTaIxbgVITxzTrs9WqSjauzPEG3LISjy+eKocV1iv k2zGa65FgiiqOIBAI5Os+eBfXMBqHMeRNk1boGQefmkZxGR+43PE8KvAw90x2dfvrPksscyReNh iqz8C0BowvI4BhPSezXAa2mXQPgCyX/Ebl11aUTn+ILjzQa0p1FUi2yg6rIN6xugHSBGcjxuEVV MrHk7lv2L0iAOryAgx0fzxmmENHKXw== X-Proofpoint-GUID: rJ08T93RRR-qTLKu7iX7yQ8kQxmnhB2f X-Proofpoint-ORIG-GUID: rJ08T93RRR-qTLKu7iX7yQ8kQxmnhB2f X-Authority-Analysis: v=2.4 cv=O/U0fR9W c=1 sm=1 tr=0 ts=69381346 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=1CQZ4ekRhcDcd_lEXJAA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-09_02,2025-12-04_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 bulkscore=0 clxscore=1015 phishscore=0 suspectscore=0 adultscore=0 spamscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2512060020 Content-Type: text/plain; charset="utf-8" The first operand address of the monitor call (mc) instruction is the monitor code. Currently the monitor code is ignored, but this will change. Therefore add and use MONCODE_BUG instead of a hardcoded zero. Signed-off-by: Heiko Carstens --- arch/s390/include/asm/bug.h | 10 ++++++++-- arch/s390/kernel/traps.c | 5 +++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/arch/s390/include/asm/bug.h b/arch/s390/include/asm/bug.h index 5a635158cbad..1e1dece0eee4 100644 --- a/arch/s390/include/asm/bug.h +++ b/arch/s390/include/asm/bug.h @@ -3,7 +3,11 @@ #define _ASM_S390_BUG_H =20 #include +#include =20 +#define MONCODE_BUG _AC(0, U) + +#ifndef __ASSEMBLER__ #ifdef CONFIG_BUG =20 #ifdef CONFIG_DEBUG_BUGVERBOSE @@ -24,7 +28,7 @@ #define __BUG_ASM(cond_str, flags) \ do { \ asm_inline volatile("\n" \ - "0: mc 0,0\n" \ + "0: mc %[monc](%%r0),0\n" \ " .section __bug_table,\"aw\"\n" \ "1: .long 0b - . # bug_entry::bug_addr\n" \ __BUG_ENTRY_VERBOSE("%[frmt]", "%[file]", "%[line]") \ @@ -32,7 +36,8 @@ do { \ " .org 1b+%[size]\n" \ " .previous" \ : \ - : [frmt] "i" (WARN_CONDITION_STR(cond_str)), \ + : [monc] "i" (MONCODE_BUG), \ + [frmt] "i" (WARN_CONDITION_STR(cond_str)), \ [file] "i" (__FILE__), \ [line] "i" (__LINE__), \ [flgs] "i" (flags), \ @@ -54,6 +59,7 @@ do { \ #define HAVE_ARCH_BUG_FORMAT =20 #endif /* CONFIG_BUG */ +#endif /* __ASSEMBLER__ */ =20 #include =20 diff --git a/arch/s390/kernel/traps.c b/arch/s390/kernel/traps.c index 19687dab32f7..de63e98e724b 100644 --- a/arch/s390/kernel/traps.c +++ b/arch/s390/kernel/traps.c @@ -258,11 +258,12 @@ static void __init test_monitor_call(void) if (!IS_ENABLED(CONFIG_BUG)) return; asm_inline volatile( - " mc 0,0\n" + " mc %[monc](%%r0),0\n" "0: lhi %[val],0\n" "1:\n" EX_TABLE(0b, 1b) - : [val] "+d" (val)); + : [val] "+d" (val) + : [monc] "i" (MONCODE_BUG)); if (!val) panic("Monitor call doesn't work!\n"); } --=20 2.51.0 From nobody Fri Dec 19 09:51:25 2025 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 00D67322B66; Tue, 9 Dec 2025 12:17:26 +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=1765282648; cv=none; b=mg5ffiBsD4rBOWU2RcQce5CQuAVJ0GodRWqZN1/u/zo3ZILoDrQ7LDw+tv5HYhjEjZI8dZWgN322k2dbpTSMvbun/Tt3hLMAGZWu0ugOyrZsp3oHwyug1AtpYOHRCqP5zliCYiQyoidPBXH19tJEySa9ln0fjoHRDnBJmJxcrFI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765282648; c=relaxed/simple; bh=CpVMq9d2BXRwZi/Ix9Tb0FHrQ250ufry9ym4HTnCt1A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=X9dTJMCiZrWbNXFUZfOPYGfUOik+B/0Tc9IEQhjH9DZlC4pxwY8N7R7XETmAxK2KNYkbOESCNGfrFbM6zIN7lpOGxc2o4Qcex8r7dy+GBar4Rf4cd/TXLeqFJ33btAHMCL84gQR0wSbNZsFUe9zZjrvPPcjyp+EGdNzR3agxqmE= 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=qSLKHwuW; 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="qSLKHwuW" Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5B9BLs9D031277; Tue, 9 Dec 2025 12:17:08 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=jpKY+wQk5Scv0775N O/PAaz9kp7MOF3vOEIhnUAuIH0=; b=qSLKHwuWOVcaiLlGr9j5QI/hptaVKVeWs LmZLJWNLj+MmUhgVP2qNRfg1n/9E+W1jKUNftfncWGkimek5T4+i9iDqz93Mr4rg z0A8Hof+xM5x+Z5NFPgkEYBX7MRGuBHLgVOHW72wVqYOUNzRci3EjibBNwe0v6fG 5FaQQKz36lRNsUTDH9wj+k2ju61sDEa0Wl46cVBwim5H5kiINj6FM5O0179Dy1tm 3Fx53SkEsglHgZfNnkLFH8NMrGDBF2TYfZkWJ5BRusJHzDuFpk9YgxYSKZQto/Br bwah/NKVKcTRamZR/883A8Tf1cPkcRYUC6WVihCdfnzEb4ETujfGw== 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 4avc7bvr8v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Dec 2025 12:17:07 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5B9BZdXW012432; Tue, 9 Dec 2025 12:17:06 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4aw0ajtpbv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Dec 2025 12:17:06 +0000 Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com [10.20.54.102]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 5B9CH2Q725494156 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 9 Dec 2025 12:17:02 GMT Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9B57420040; Tue, 9 Dec 2025 12:17:02 +0000 (GMT) Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 70B332004B; Tue, 9 Dec 2025 12:17:02 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.87.85.9]) by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 9 Dec 2025 12:17:02 +0000 (GMT) From: Heiko Carstens To: Alexander Gordeev , Sven Schnelle , Vasily Gorbik , Christian Borntraeger , Peter Zijlstra , Mark Rutland , Arnd Bergmann , Jens Remus , Stefan Schulze Frielinghaus , Juergen Christ Cc: linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org Subject: [PATCH 5/9] s390/traps: Copy monitor code to pt_regs Date: Tue, 9 Dec 2025 13:16:57 +0100 Message-ID: <20251209121701.1856271-6-hca@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251209121701.1856271-1-hca@linux.ibm.com> References: <20251209121701.1856271-1-hca@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-ORIG-GUID: NVVY63WwizCBnWVST_QAAy3DCELitTyQ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjA2MDAyMCBTYWx0ZWRfX6/CfjKBpw7ec SA9ddvr0UFja/m7BAA4aS5H1HZx0Dwr76nWSEk+otFafTM/7zjMy0ZluvFDYTZ2nWNxlN/bPDcE bpBIKLnA8JMEsAimuY12nPVGXnM0VItfF+z6ePeD5K4QLQtFcvDK6pEOpwKL7FOlLhZ5n508nR8 f5s3N39yvx1xufs7gcduHIpzS8CtT+pLL7sGmOYwyRJUls6ibqVvgw+RWYQy4axENz7Vj3+LOEw IZg4fq690hdg/fK8RsQI41Crm9cM2dzG7XhqJD7xz57/ll6O1Xk3Z0DVm4mjEqNGIGHnDfc1Guf /98sajn0R2JCR3p3dM0ZweQPrHMkIPkTJ2vhZGaLgOi7iBqPgsmHCF7iJ72M79WGYUDSOUf9cxC z1KnxGObH0NhHSnwpDuJBtXq9tGLsA== X-Proofpoint-GUID: NVVY63WwizCBnWVST_QAAy3DCELitTyQ X-Authority-Analysis: v=2.4 cv=FpwIPmrq c=1 sm=1 tr=0 ts=69381343 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=K8CxzhMZn-qOOmtg0DIA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-09_02,2025-12-04_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 spamscore=0 lowpriorityscore=0 suspectscore=0 malwarescore=0 phishscore=0 clxscore=1015 adultscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2512060020 Content-Type: text/plain; charset="utf-8" In case of a monitor call program check the CPU stores the monitor code to lowcore. Let the program check handler copy it to the pt_regs structure so it can be used by the monitor call exception handler. Instead of increasing the pt_regs size add a union which contains both orig_gpr2 and monitor_code, since orig_gpr2 is not used in case of a program check. Signed-off-by: Heiko Carstens --- arch/s390/include/asm/ptrace.h | 5 ++++- arch/s390/kernel/traps.c | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/s390/include/asm/ptrace.h b/arch/s390/include/asm/ptrace.h index 962cf042c66d..f3c3a4ee263c 100644 --- a/arch/s390/include/asm/ptrace.h +++ b/arch/s390/include/asm/ptrace.h @@ -120,7 +120,10 @@ struct pt_regs { unsigned long gprs[NUM_GPRS]; }; }; - unsigned long orig_gpr2; + union { + unsigned long orig_gpr2; + unsigned long monitor_code; + }; union { struct { unsigned int int_code; diff --git a/arch/s390/kernel/traps.c b/arch/s390/kernel/traps.c index de63e98e724b..b2d6d7cc3b17 100644 --- a/arch/s390/kernel/traps.c +++ b/arch/s390/kernel/traps.c @@ -298,6 +298,7 @@ void noinstr __do_pgm_check(struct pt_regs *regs) teid.val =3D lc->trans_exc_code; regs->int_code =3D lc->pgm_int_code; regs->int_parm_long =3D teid.val; + regs->monitor_code =3D lc->monitor_code; /* * In case of a guest fault, short-circuit the fault handler and return. * This way the sie64a() function will return 0; fault address and --=20 2.51.0 From nobody Fri Dec 19 09:51:25 2025 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 A64A727380A; Tue, 9 Dec 2025 12:17:08 +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=1765282631; cv=none; b=eHRsHbx6o0V08xoU/jiNcmdw2nbrEYxyCZwE4giEhnV2BVNp8739VSZL9MYFzW9gkBBgeNwlFd5bYo313zqKJI1x1NAQytJ3O8rz3JWMkUZukYqxZAKysVxgUGATUVVQtFln3byyWl41LerwL3IGVH2zyswC4isOYJwUShA06Oc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765282631; c=relaxed/simple; bh=QaRx1UkAn32WurAO0wIdjnA4tym1sc7QHJZNm8354Mo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=K5G/ajbVDdO7VmATvDFWa4k0YalyQmSLoFrNEwGnY4/vmaOFrO+nzDrSynGqlhM+hRZu2khkv5mjuwsMRzwwmUzYDYNsSuRZvEC2872XB3fM3qN5jdt8mcmo1dlicngJBmJXkTAuSOErhxclCv+cSjupzBjIGsPbNo4+PTJGP0M= 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=bzjE5Ogl; 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="bzjE5Ogl" Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5B9312ah029935; Tue, 9 Dec 2025 12:17:07 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=m11Efmma+EjHgNF9r jTSsc11defZAuUDNNsmmunS9TI=; b=bzjE5OglDPm70ktwPmywwfxxQ0znh9izX Ajq+3YBsKcrOGttvdmZH/YBp/0vt91kNDxZHDN3/zdZiXt0lBAHmdHV61QYvbbr9 sjME+TScDLS9yawpZkyhh/6Kn1tGRODoTSwypCL9I/EeVLJfGB3C+qQoOAK30XNz NPL1aJNzSQZvPQzhWJoyZVpL54Pn4Ee3jsaHJDGXecUPB+iAqUk4kRZD9zeMKVjL 9D1xF1ms7ZPh72WWSCmlShyZZIm2to5u0mee4EE6H+O1cxobw4dthUUwvvep5afZ vDB1ThlYNyHhvFi/LQkN08e7cXTzA7vqfcGwmshpNVOPq+u2Cb5Cw== Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4avc61crdk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Dec 2025 12:17:07 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5B998kGR026887; Tue, 9 Dec 2025 12:17:06 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4aw1h12fus-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Dec 2025 12:17:06 +0000 Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com [10.20.54.102]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 5B9CH3gs57475480 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 9 Dec 2025 12:17:03 GMT Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D2C2F20040; Tue, 9 Dec 2025 12:17:02 +0000 (GMT) Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A05B820043; Tue, 9 Dec 2025 12:17:02 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.87.85.9]) by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 9 Dec 2025 12:17:02 +0000 (GMT) From: Heiko Carstens To: Alexander Gordeev , Sven Schnelle , Vasily Gorbik , Christian Borntraeger , Peter Zijlstra , Mark Rutland , Arnd Bergmann , Jens Remus , Stefan Schulze Frielinghaus , Juergen Christ Cc: linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org Subject: [PATCH 6/9] s390/bug: Implement __WARN_printf() Date: Tue, 9 Dec 2025 13:16:58 +0100 Message-ID: <20251209121701.1856271-7-hca@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251209121701.1856271-1-hca@linux.ibm.com> References: <20251209121701.1856271-1-hca@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-Spam-Details-Enc: AW1haW4tMjUxMjA2MDAyMCBTYWx0ZWRfX+L0PJQtnfO3J e42rnZLIv7+c9HgUJLh2kYtjK6WxDqPdEFLwp6myBqh95WzsTXZ/JoNCS1lFeX9WTZTSSkriSxl MBlYHsXMhGE6l00jPCxJkJT6QkY2l6l3cVDJ9O5Rn2Fr0TzpmQOv8B76pyP/+kIGgqrZKkytKn4 CwHO/SVDn+4Prv+psdOUU0zJvRiNDq22uDTcr1SpQ8Lf5zxAsOtleUNHHlfJsgAF+nr+Eg8aEAh zVdZx53ot+MTuNYV8u78swnVkfKXeB9LcBnclYvcYNTjQYHZydYh/mvkvx7GMufKD6KidYYC80k +tbkMYS2S5w5feK7um3DC70FH4S77maydAVnObLryOX3KppfIRpWfuuEeybsD4aMCCnTXywhqlL d192LKLPKx4U5V/O14zk7w8XdFCPTg== X-Proofpoint-GUID: MXa84x5MNYsHdPHwcHJdaozLMvRsQ_PU X-Proofpoint-ORIG-GUID: MXa84x5MNYsHdPHwcHJdaozLMvRsQ_PU X-Authority-Analysis: v=2.4 cv=O/U0fR9W c=1 sm=1 tr=0 ts=69381343 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=1LMq0zfvll1xo8deCS4A:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-09_02,2025-12-04_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 bulkscore=0 clxscore=1015 phishscore=0 suspectscore=0 adultscore=0 spamscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2512060020 Content-Type: text/plain; charset="utf-8" This is the s390 variant of commit 5b472b6e5bd9 ("x86_64/bug: Implement __WARN_printf()"). See the x86 commit for the general idea; there are only implementation details which are different. With the new exception based __WARN_printf() implementation the generated code for a simple WARN() is simplified. For example: void foo(int a) { WARN(a, "bar"); } Before this change the generated code looks like this: 0000000000000210 : 210: c0 04 00 00 00 00 jgnop 210 216: ec 26 00 06 00 7c cgijne %r2,0,222 21c: c0 f4 00 00 00 00 jg 21c 21e: R_390_PC32DBL __s390_indirect_jump_r14+0x2 222: eb ef f0 88 00 24 stmg %r14,%r15,136(%r15) 228: b9 04 00 ef lgr %r14,%r15 22c: e3 f0 ff e8 ff 71 lay %r15,-24(%r15) 232: e3 e0 f0 98 00 24 stg %r14,152(%r15) 238: c0 20 00 00 00 00 larl %r2,238 23a: R_390_PC32DBL .LC48+0x2 23e: c0 e5 00 00 00 00 brasl %r14,23e 240: R_390_PLT32DBL __warn_printk+0x2 244: af 00 00 00 mc 0,0 248: eb ef f0 a0 00 04 lmg %r14,%r15,160(%r15) 24e: c0 f4 00 00 00 00 jg 24e 250: R_390_PC32DBL __s390_indirect_jump_r14+0x2 With this change the generated code looks like this: 0000000000000210 : 210: c0 04 00 00 00 00 jgnop 210 216: ec 26 00 06 00 7c cgijne %r2,0,222 21c: c0 f4 00 00 00 00 jg 21c 21e: R_390_PC32DBL __s390_indirect_jump_r14+0x2 222: c0 20 00 00 00 00 larl %r2,222 224: R_390_PC32DBL __bug_table+0x2 228: c0 f4 00 00 00 00 jg 228 22a: R_390_PLT32DBL __WARN_trap+0x2 Downside is that the call trace now starts at __WARN_trap(): ------------[ cut here ]------------ bar WARNING: arch/s390/kernel/setup.c:1017 at 0x0, CPU#0: swapper/0/0 ... Krnl PSW : 0704c00180000000 000003ffe0f6a3b4 (__WARN_trap+0x4/0x10) ... Krnl Code: 000003ffe0f6a3ac: 0707 bcr 0,%r7 000003ffe0f6a3ae: 0707 bcr 0,%r7 *000003ffe0f6a3b0: af000001 mc 1,0 >000003ffe0f6a3b4: 07fe bcr 15,%r14 000003ffe0f6a3b6: 47000700 bc 0,1792 000003ffe0f6a3ba: 0707 bcr 0,%r7 000003ffe0f6a3bc: 0707 bcr 0,%r7 000003ffe0f6a3be: 0707 bcr 0,%r7 Call Trace: [<000003ffe0f6a3b4>] __WARN_trap+0x4/0x10 ([<000003ffe185a54c>] start_kernel+0x53c/0x5d8) [<000003ffe010002e>] startup_continue+0x2e/0x40 Which isn't too helpful. This can be addressed by just skipping __WARN_trap= (), which will be addressed in a later patch. Signed-off-by: Heiko Carstens --- arch/s390/include/asm/bug.h | 62 +++++++++++++++++++++++++++++++++---- arch/s390/kernel/entry.S | 7 +++++ arch/s390/kernel/traps.c | 34 +++++++++++++++++++- 3 files changed, 96 insertions(+), 7 deletions(-) diff --git a/arch/s390/include/asm/bug.h b/arch/s390/include/asm/bug.h index 1e1dece0eee4..f3aca691bae2 100644 --- a/arch/s390/include/asm/bug.h +++ b/arch/s390/include/asm/bug.h @@ -6,6 +6,7 @@ #include =20 #define MONCODE_BUG _AC(0, U) +#define MONCODE_BUG_ARG _AC(1, U) =20 #ifndef __ASSEMBLER__ #ifdef CONFIG_BUG @@ -25,16 +26,20 @@ #define WARN_CONDITION_STR(cond_str) "" #endif =20 +#define __BUG_ENTRY(format, file, line, flags, size) \ + " .section __bug_table,\"aw\"\n" \ + "1: .long 0b - . # bug_entry::bug_addr\n" \ + __BUG_ENTRY_VERBOSE(format, file, line) \ + " .short "flags" # bug_entry::flags\n" \ + " .org 1b+"size"\n" \ + " .previous" + #define __BUG_ASM(cond_str, flags) \ do { \ asm_inline volatile("\n" \ "0: mc %[monc](%%r0),0\n" \ - " .section __bug_table,\"aw\"\n" \ - "1: .long 0b - . # bug_entry::bug_addr\n" \ - __BUG_ENTRY_VERBOSE("%[frmt]", "%[file]", "%[line]") \ - " .short %[flgs] # bug_entry::flags\n" \ - " .org 1b+%[size]\n" \ - " .previous" \ + __BUG_ENTRY("%[frmt]", "%[file]", "%[line]", \ + "%[flgs]", "%[size]") \ : \ : [monc] "i" (MONCODE_BUG), \ [frmt] "i" (WARN_CONDITION_STR(cond_str)), \ @@ -55,8 +60,53 @@ do { \ __BUG_ASM(cond_str, BUGFLAG_WARNING | (flags)); \ } while (0) =20 +#define __WARN_bug_entry(flags, format) \ +({ \ + struct bug_entry *bug; \ + \ + asm_inline volatile("\n" \ + "0: larl %[bug],1f\n" \ + __BUG_ENTRY("%[frmt]", "%[file]", "%[line]", \ + "%[flgs]", "%[size]") \ + : [bug] "=3Dd" (bug) \ + : [frmt] "i" (format), \ + [file] "i" (__FILE__), \ + [line] "i" (__LINE__), \ + [flgs] "i" (flags), \ + [size] "i" (sizeof(struct bug_entry))); \ + bug; \ +}) + +/* + * Variable Argument List (va_list) as defined in ELF Application + * Binary Interface s390x Supplement documentation. + */ +struct arch_va_list { + long __gpr; + long __fpr; + void *__overflow_arg_area; + void *__reg_save_area; +}; + +struct bug_entry; +struct pt_regs; + +void *__warn_args(struct arch_va_list *args, struct pt_regs *regs); +void __WARN_trap(struct bug_entry *bug, ...); + +#define __WARN_print_arg(flags, format, arg...) \ +do { \ + int __flags =3D (flags) | BUGFLAG_WARNING | BUGFLAG_ARGS; \ + \ + __WARN_trap(__WARN_bug_entry(__flags, format), ## arg); \ +} while (0) + +#define __WARN_printf(taint, fmt, arg...) \ + __WARN_print_arg(BUGFLAG_TAINT(taint), fmt, ## arg) + #define HAVE_ARCH_BUG #define HAVE_ARCH_BUG_FORMAT +#define HAVE_ARCH_BUG_FORMAT_ARGS =20 #endif /* CONFIG_BUG */ #endif /* __ASSEMBLER__ */ diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S index b7f1553d9ee5..23ff05746aa6 100644 --- a/arch/s390/kernel/entry.S +++ b/arch/s390/kernel/entry.S @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -173,6 +174,12 @@ SYM_FUNC_START(__switch_to_asm) BR_EX %r14 SYM_FUNC_END(__switch_to_asm) =20 +SYM_FUNC_START(__WARN_trap) + mc MONCODE_BUG_ARG(%r0),0 + BR_EX %r14 +SYM_FUNC_END(__WARN_trap) +EXPORT_SYMBOL(__WARN_trap) + #if IS_ENABLED(CONFIG_KVM) /* * __sie64a calling convention: diff --git a/arch/s390/kernel/traps.c b/arch/s390/kernel/traps.c index b2d6d7cc3b17..8aca5858b403 100644 --- a/arch/s390/kernel/traps.c +++ b/arch/s390/kernel/traps.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -220,11 +221,42 @@ static void space_switch_exception(struct pt_regs *re= gs) do_trap(regs, SIGILL, ILL_PRVOPC, "space switch event"); } =20 +void *__warn_args(struct arch_va_list *args, struct pt_regs *regs) +{ + struct stack_frame *stack_frame; + + /* + * Generate va_list from pt_regs. See ELF Application Binary Interface + * s390x Supplement documentation for details. + * + * - __overflow_arg_area needs to point to the parameter area, which + * is right above the standard stack frame (160 bytes) + * + * - __reg_save_area needs to point to a register save area where + * general registers (%r2 - %r6) can be found at offset 16. Which + * means that the gprs save area of pt_regs can be used + * + * - __gpr must be set to one, since the first parameter has been + * processed (pointer to bug_entry) + */ + stack_frame =3D (struct stack_frame *)regs->gprs[15]; + args->__overflow_arg_area =3D stack_frame + 1; + args->__reg_save_area =3D regs->gprs; + args->__gpr =3D 1; + return args; +} + static void monitor_event_exception(struct pt_regs *regs) { + enum bug_trap_type btt; + if (user_mode(regs)) return; - switch (report_bug(regs->psw.addr - (regs->int_code >> 16), regs)) { + if (regs->monitor_code =3D=3D MONCODE_BUG_ARG) + btt =3D report_bug_entry((struct bug_entry *)regs->gprs[2], regs); + else + btt =3D report_bug(regs->psw.addr - (regs->int_code >> 16), regs); + switch (btt) { case BUG_TRAP_TYPE_NONE: fixup_exception(regs); break; --=20 2.51.0 From nobody Fri Dec 19 09:51:25 2025 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 C51DB322A29; Tue, 9 Dec 2025 12:17:26 +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=1765282648; cv=none; b=gsNqLkcAqfdIC7e274O9rHKvv4O6iD/EC+vmiIFOjEQVwclN8H+qxbybnKURbQG2F9dkK87n8x79q6MlSgCeA+TqJtB+BasdVMbJTp37Xd6AGzKKBcPCA+aO8glhdmegRGhHMjgJ4HRhxXB+Sp+JjDIrIcDnQrXdlrn1+YFpoyE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765282648; c=relaxed/simple; bh=eJsX2ajUY1R9ap8oO4VM4sfu4Q5sWjTKSLpebgAr5L8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=I5T9jxwRr9UCbKO2FKUgA11w+UnYSnv7en/MzOzx+KGyqXz+c5GBaZgYRyFtcq4mrrWMJNVs2BavSBOrBn3qn+UiME5lzPpS2kptwXumu06A2lGWT+KmZzcAaiRzcdgSnlZwvobvu/VQOA30WW/NVyHDBREtYkn9V2xx/n1GaVA= 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=BluYHvoi; 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="BluYHvoi" Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5B94LL4O025464; Tue, 9 Dec 2025 12:17:08 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=p5vgbocIzfu4UqJeE Zdzk+Ne/jsAz1Mol1zk9wTpmRA=; b=BluYHvoiEw8D6glRgCOo4isi0X9++U0cV XYMSjkiuCvFmELENhS6fQoLqbGpXzXlEBVgbEC7BMXiLgDdrNCavEOYW4pe3RvqU Ti26qG9kgQ4TBbsba1BfFrGacRvfNvv6k2lhBvUclcPqEa97dWFprsa5pN13K39P qkfmBCxjMRXMT/LCX23ot2N/Q1N8Tp7lEj3zIB4IOdr4nU2gO4ZPKf9pRsHxINm3 jFZ9hNoJZ+g+5t6ggR03Nq8+33JKQQqYRuHuLlLkDUaA8lmCEVypHWfscH7BZGIa hPX6X/GSy+4Xb4uTtMcy/XZg/eawXbvCUIP8fQVLc1zAGD5aS3lCQ== 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 4avc61crdn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Dec 2025 12:17:08 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5B9BS77J009026; Tue, 9 Dec 2025 12:17:07 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4avytmtskw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Dec 2025 12:17:07 +0000 Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com [10.20.54.102]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 5B9CH3YY57475482 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 9 Dec 2025 12:17:03 GMT Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 18FEF2004E; Tue, 9 Dec 2025 12:17:03 +0000 (GMT) Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D7B802004B; Tue, 9 Dec 2025 12:17:02 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.87.85.9]) by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 9 Dec 2025 12:17:02 +0000 (GMT) From: Heiko Carstens To: Alexander Gordeev , Sven Schnelle , Vasily Gorbik , Christian Borntraeger , Peter Zijlstra , Mark Rutland , Arnd Bergmann , Jens Remus , Stefan Schulze Frielinghaus , Juergen Christ Cc: linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org Subject: [PATCH 7/9] s390/bug: Implement WARN_ONCE() Date: Tue, 9 Dec 2025 13:16:59 +0100 Message-ID: <20251209121701.1856271-8-hca@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251209121701.1856271-1-hca@linux.ibm.com> References: <20251209121701.1856271-1-hca@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-Spam-Details-Enc: AW1haW4tMjUxMjA2MDAyMCBTYWx0ZWRfX7/bSsKL1Xx/k K6EPWhYqJx6kXcdAhy/K3No6tXbIGDyD8WX720VONDaecoMgTfc98n5i3Sqz8rIvItW3Dvv/yrP Vop1dd3OBYqL4xfX5N/lKDP4g56eOfF+NJceNFelAjd/o2xOEXI9OOgowKK7jlZuPNopHJVtYp2 2gqn1RzzWgUu8fpna7KG5uBiZafl3cCNWA2FSgqV476y9LZMkH1rQTLQMgImJL2x1dfw30gkq51 Yu2T8FdKUxo7+gT3NfWA5GtIYR2cELiahAC3CkUJc0mznH07Rcg9KfJN/RPobOg/yRujO/cYo1Y U3gKLAbd4Nd+/iXVx9WAUHaKkEMhg7+1+hsDvjQ1ewu9egVchwQ73+WvuXgNifSaWHyAXOKhLVR Ob0Ihuvfmc0kSpr3nwipmULFvO97/Q== X-Proofpoint-GUID: LFjeLZkUtCH5z27GGhCBu6JxWCYAAHzs X-Proofpoint-ORIG-GUID: LFjeLZkUtCH5z27GGhCBu6JxWCYAAHzs X-Authority-Analysis: v=2.4 cv=O/U0fR9W c=1 sm=1 tr=0 ts=69381344 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=t9L4_B14UcOybPqeXt4A:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-09_02,2025-12-04_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 bulkscore=0 clxscore=1015 phishscore=0 suspectscore=0 adultscore=0 spamscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2512060020 Content-Type: text/plain; charset="utf-8" This is the s390 variant of commit 11bb4944f014 ("x86/bug: Implement WARN_ONCE()"). Signed-off-by: Heiko Carstens --- arch/s390/include/asm/bug.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/arch/s390/include/asm/bug.h b/arch/s390/include/asm/bug.h index f3aca691bae2..e6e8b492c0e7 100644 --- a/arch/s390/include/asm/bug.h +++ b/arch/s390/include/asm/bug.h @@ -104,6 +104,17 @@ do { \ #define __WARN_printf(taint, fmt, arg...) \ __WARN_print_arg(BUGFLAG_TAINT(taint), fmt, ## arg) =20 +#define WARN_ONCE(cond, format, arg...) \ +({ \ + int __ret_warn_on =3D !!(cond); \ + \ + if (unlikely(__ret_warn_on)) { \ + __WARN_print_arg(BUGFLAG_ONCE|BUGFLAG_TAINT(TAINT_WARN),\ + format, ## arg); \ + } \ + __ret_warn_on; \ +}) + #define HAVE_ARCH_BUG #define HAVE_ARCH_BUG_FORMAT #define HAVE_ARCH_BUG_FORMAT_ARGS --=20 2.51.0 From nobody Fri Dec 19 09:51:25 2025 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 A9B19322B76; Tue, 9 Dec 2025 12:17:16 +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=1765282638; cv=none; b=huxuHe6vw5lxFIYqasH7CrjR5UN0D6XdbTNhUUK+MOKuKL8EeyiY9/pitKqeNdKblxjm7zXWSuwJvrOkJgn2OyJCGViEK/vIJ7RtialSzAStaG7kFxuOihskRT0wI+kXkp6qqZ+FJaGKH3EJwoJtJOr2knb2w9cYt+lSBD+pQsE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765282638; c=relaxed/simple; bh=+iBIZj3fFlpFhytjYXw/NGmtKcWx4t9nYVj8LsCShgA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aoK6FZw3H+oVOq1L1mDEaYljywKMvlBxU3O0ogYmqWhMi0UqpbP7vJw8xujdR17Q/tqKzs2wB/TdSVmbysVXN9c8UjL8OpcOs4pTCheG25sYd7n1wkC7L27B8zLd4NEEGPDdE0JSXhKdDVPD+w0XLwK9c/321NDY7JRUfjoGJts= 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=jTbYJFUT; 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="jTbYJFUT" Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5B91013s012563; Tue, 9 Dec 2025 12:17:08 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=z9lgLCqxWb+cqCP7L pOpD+dbBpsd0/zEnlcPfJmvo+U=; b=jTbYJFUTRGwB0HxROTpP1ZD/Ia2WZfPnD Vo8V2DfnCAaoW/LZvL5jbSjUAnxYpkpntbziXbzJr7sCECyV2jeFZ+CuWoPG1eRj gpPLeJDoRiennMtOR2VcECEHkSwH9UtKrWlAFoZlpp21FA3EP/E7CFV49nWJlZ5Y nzkLmOGdkuyN0pYOzGQFqUGRyGv3NY5SM3JgRN0boppalg3JmIZU5vqPi8vsxdGm XtIWx/JoaU7JvRhewMdkOnMXoqHkuAG041PSlnZ1mF6w426NIbCIy6Vjd7pIODfr sLgNKlMH0+uFd7OEvYhDmY2j4ni7qz+mHoAxqY0rbawYIuihQu2EA== Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4avc61crdm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Dec 2025 12:17:07 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5B9A6ZFH030340; Tue, 9 Dec 2025 12:17:06 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4avxts2xjp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Dec 2025 12:17:06 +0000 Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com [10.20.54.102]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 5B9CH3MN57475484 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 9 Dec 2025 12:17:03 GMT Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 498FF2004B; Tue, 9 Dec 2025 12:17:03 +0000 (GMT) Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 1E2BC2005A; Tue, 9 Dec 2025 12:17:03 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.87.85.9]) by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 9 Dec 2025 12:17:03 +0000 (GMT) From: Heiko Carstens To: Alexander Gordeev , Sven Schnelle , Vasily Gorbik , Christian Borntraeger , Peter Zijlstra , Mark Rutland , Arnd Bergmann , Jens Remus , Stefan Schulze Frielinghaus , Juergen Christ Cc: linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org Subject: [PATCH 8/9] s390/bug: Skip __WARN_trap() in call traces Date: Tue, 9 Dec 2025 13:17:00 +0100 Message-ID: <20251209121701.1856271-9-hca@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251209121701.1856271-1-hca@linux.ibm.com> References: <20251209121701.1856271-1-hca@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-Spam-Details-Enc: AW1haW4tMjUxMjA2MDAyMCBTYWx0ZWRfX1OUA2fZc4eQP uCleBnM7k4FxRQpBopVNOKHc6MTcssApPKLxR2DvFIJJE3yXfsCXgO1TVmy0nEBRGSjntSK7O1a 372hc7qWJAVx55aSnFyRnPnja34UrUa1crwoP5vZ6z8CObKW/xRgP/wtRjJEJ6muj48HNB+Ynxi ZDuZmS1UjwLUeCU95KNpIZrF34ddzIm3USYn3U6hDr/mUTLnEw4eHej8KpH7LgRdD5NKdgAxo3T F3EfG0vDSk6DUZBxuu2hIiJ/wqb38qelFfOxXLrJaEen13Beju5Ad41GG2aCqy8uLsUWt5oD54p w7uiMeZbrGY3cnhY+K2jKDQAFKnlqrAtAweks0Dc8zNe5+46yo07dPWgF1JBYa+aSZLeVHya3KT l+DVN1+AtzgvpL1jQuE7Ic/mEBgIQQ== X-Proofpoint-GUID: LKJ8Jgl1yFZiRl-u2nRPk209DccFYHBL X-Proofpoint-ORIG-GUID: LKJ8Jgl1yFZiRl-u2nRPk209DccFYHBL X-Authority-Analysis: v=2.4 cv=O/U0fR9W c=1 sm=1 tr=0 ts=69381343 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=NwRz6GXzLtFWWujd_mUA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-09_02,2025-12-04_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 bulkscore=0 clxscore=1015 phishscore=0 suspectscore=0 adultscore=0 spamscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2512060020 Content-Type: text/plain; charset="utf-8" In order to avoid rather pointless warning disassemblies of __WARN_trap() set the PSW address to the return address of the function which called __WARN_trap(). This is the address to which __WARN_trap() would return in any case. The result is a disassembly of the function which called __WARN_trap(), which is much more helpful. Before: WARNING: arch/s390/kernel/setup.c:1017 at foobar+0x2c/0x20, CPU#0: swapper/= 0/0 ... Krnl PSW : 0704c00180000000 000003ffe0f675f4 (__WARN_trap+0x4/0x10) ... Krnl Code: 000003ffe0f675ec: 0707 bcr 0,%r7 000003ffe0f675ee: 0707 bcr 0,%r7 *000003ffe0f675f0: af000001 mc 1,0 >000003ffe0f675f4: 07fe bcr 15,%r14 000003ffe0f675f6: 47000700 bc 0,1792 000003ffe0f675fa: 0707 bcr 0,%r7 000003ffe0f675fc: 0707 bcr 0,%r7 000003ffe0f675fe: 0707 bcr 0,%r7 Call Trace: [<000003ffe0f675f4>] __WARN_trap+0x4/0x10 [<000003ffe185bc2e>] arch_cpu_finalize_init+0x26/0x60 [<000003ffe185654c>] start_kernel+0x53c/0x5d8 [<000003ffe010002e>] startup_continue+0x2e/0x40 Afterwards: WARNING: arch/s390/kernel/setup.c:1017 at foobar+0x12/0x30, CPU#0: swapper/= 0/0 ... Krnl PSW : 0704c00180000000 000003ffe185bc2e (arch_cpu_finalize_init+0x26/0= x60) ... Krnl Code: 000003ffe185bc1c: e3f0ff98ff71 lay %r15,-104(%r15) 000003ffe185bc22: e3e0f0980024 stg %r14,152(%r15) *000003ffe185bc28: c0e5ff45ed94 brasl %r14,000003ffe0119= 750 >000003ffe185bc2e: c0e5ffa052b9 brasl %r14,000003ffe0c66= 1a0 000003ffe185bc34: c020fffe86d6 larl %r2,000003ffe182c9= e0 000003ffe185bc3a: e548f0a80006 mvghi 168(%r15),6 000003ffe185bc40: e548f0a00005 mvghi 160(%r15),5 000003ffe185bc46: a7690004 lghi %r6,4 Call Trace: [<000003ffe185bc2e>] arch_cpu_finalize_init+0x26/0x60 [<000003ffe185654c>] start_kernel+0x53c/0x5d8 [<000003ffe010002e>] startup_continue+0x2e/0x40 Signed-off-by: Heiko Carstens --- arch/s390/kernel/traps.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/s390/kernel/traps.c b/arch/s390/kernel/traps.c index 8aca5858b403..5ed6ebe823bd 100644 --- a/arch/s390/kernel/traps.c +++ b/arch/s390/kernel/traps.c @@ -252,10 +252,12 @@ static void monitor_event_exception(struct pt_regs *r= egs) =20 if (user_mode(regs)) return; - if (regs->monitor_code =3D=3D MONCODE_BUG_ARG) + if (regs->monitor_code =3D=3D MONCODE_BUG_ARG) { + regs->psw.addr =3D regs->gprs[14]; btt =3D report_bug_entry((struct bug_entry *)regs->gprs[2], regs); - else + } else { btt =3D report_bug(regs->psw.addr - (regs->int_code >> 16), regs); + } switch (btt) { case BUG_TRAP_TYPE_NONE: fixup_exception(regs); --=20 2.51.0 From nobody Fri Dec 19 09:51:25 2025 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 10F20322B65; Tue, 9 Dec 2025 12:17:27 +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=1765282649; cv=none; b=XxUhQ8V1BStP71n+ZYbIjXPSleL2qB+4SSsF9/BGv4ZEvp5fuD2j4qdFzMdran5p0pGZzdAJzjqqvv5y8/0PHk/kK8JyhoFSlA2p6Jn/InH3zely3KSB1QQ8+vvDM8swx7qnLeH4p74zOmCWheJ3U6+kv2IreeiRI1wmg0ApCls= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765282649; c=relaxed/simple; bh=COG61lcHjSleFur0llg4sRLZLU2LAc19XYgnMJoytDg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aT6CYuPrIYIp7p4JwLVfg01qyDjx29NYUye6+jxDb2q0ro4TUGtw/yU6qGCPKUDsrWSViGYQSSJSykuy60S9S308znUlUnMNOMQd1mLDCSPzfat/dL3UwocZfvUHZIM+GMwuSuzSbCicvENhK8fDu9+bKHAogjYgNLzjtYihAV4= 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=O0uglcnH; 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="O0uglcnH" Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5B94bJLI002119; Tue, 9 Dec 2025 12:17:08 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=yIEQKOBCWq82nhY+1 djAS9+ArjHPuHK59L0DB2mR52o=; b=O0uglcnHIhX6aUgcsV9Hd8luWq/vmBoE5 2fA6hHOw6lQJ88xe2KuFGxgCT2A7Gmsy03qMKrhyZu7i9Y9BUjJ6a2aXz+eLFNqk 8xiOG0IyIPwtwuYAZ7PK1O/tM6V9ZqW0FiH43ckOUN06aV5LsUKGQbxUyK0d4Nb6 4TmMghr9Gw5QgQg108P84woZ0Slew1wmNSdZzFIauS4GqBBUFJUZCrblx48ayAxN C9n1UHAkJvWVul799i7djee7Q2FnPd4ixap4rFbg9RnRSzbXMnTZdKK9CpyHKSgi 2wnzCb18qkM3IPSWXWLajuvrbZdY1uMvvpidUZmNDw9KbXXOf9NEA== 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 4avc0jvr44-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Dec 2025 12:17:08 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 5B9AqkDs028147; Tue, 9 Dec 2025 12:17:07 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4avy6xtwdx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Dec 2025 12:17:07 +0000 Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com [10.20.54.102]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 5B9CH3lp57475486 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 9 Dec 2025 12:17:03 GMT Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 71EE72005A; Tue, 9 Dec 2025 12:17:03 +0000 (GMT) Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4F3F12004E; Tue, 9 Dec 2025 12:17:03 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.87.85.9]) by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 9 Dec 2025 12:17:03 +0000 (GMT) From: Heiko Carstens To: Alexander Gordeev , Sven Schnelle , Vasily Gorbik , Christian Borntraeger , Peter Zijlstra , Mark Rutland , Arnd Bergmann , Jens Remus , Stefan Schulze Frielinghaus , Juergen Christ Cc: linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org Subject: [PATCH 9/9] s390/bug: Prevent tail-call optimization Date: Tue, 9 Dec 2025 13:17:01 +0100 Message-ID: <20251209121701.1856271-10-hca@linux.ibm.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251209121701.1856271-1-hca@linux.ibm.com> References: <20251209121701.1856271-1-hca@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-Authority-Analysis: v=2.4 cv=Cf8FJbrl c=1 sm=1 tr=0 ts=69381344 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=Vn3QhlCR7JUg0q92K_gA:9 X-Proofpoint-ORIG-GUID: rdJpu4F6z-xPfRPWU5xTgcGeNhmTquNI X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjA2MDAxNiBTYWx0ZWRfX9DTe6JTEQPbb O+FssnBm1Q4FdTVzpIhM3HU3lYpd7foNgjWNFrmMfE+U87lBKRCqY47tX8VkCk+etUK0KChKwU3 2WTw78Hdn5rHnX8/S9gAJOFN0TRL8QxMNwsap1vV8kzpUCb4mIX721wO85eT01kozIxx+ZIKEKV B/RaKgXMJ/cjHoAJeYjsJY/XqBMf5B8jakBxfQcZ3uKN7zb0UHhy5J2QA0oB7ejQsI/gMdlg+Oh +HbwU5YXiyRBcXS8w7ahx1sK9nzIrsLk0of4y2qBzwUOmuA/2MNT4okpPx5NxaB+672uNjiXcgT lDINuoOuMjZ83yIB+kjWACQy6EwBWb8W77Ocbzl9r7s8aNhPB2XJPFqKuaEG3vJZkUSuCBPGpGi qpVsNAbgRCWdIQYzzyztRz3OAZHfxA== X-Proofpoint-GUID: rdJpu4F6z-xPfRPWU5xTgcGeNhmTquNI X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-09_02,2025-12-04_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 malwarescore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2512060016 Content-Type: text/plain; charset="utf-8" For the exception based __WARN_trap() implementation it is technically not necessary to prevent tail-call optimization, however it may be confusing to see warning messages like: WARNING: arch/s390/kernel/setup.c:1017 at foobar+0x2c/0x50, CPU#0: swapper/= 0/0 together with a disassembly of a different function caused by tail-call optimaziation for the __WARN_trap() call. Prevent that by adding an empty asm statement. This generates slightly worse code, but should hopefully avoid confusion. With this the output looks like: WARNING: arch/s390/kernel/setup.c:1017 at foobar+0x2c/0x50, CPU#0: swapper/= 0/0 ... Krnl PSW : 0704c00180000000 000003ffe0119788 (foobar+0x38/0x50) ... Krnl Code: 000003ffe0119776: e3e0f0980024 stg %r14,152(%r15) 000003ffe011977c: c02000b8992a larl %r2,000003ffe182c9= d0 *000003ffe0119782: c0e5007270b7 brasl %r14,000003ffe0f67= 8f0 >000003ffe0119788: ebeff0a00004 lmg %r14,%r15,160(%r15) 000003ffe011978e: 07fe bcr 15,%r14 000003ffe0119790: 47000700 bc 0,1792 000003ffe0119794: 0707 bcr 0,%r7 000003ffe0119796: 0707 bcr 0,%r7 Call Trace: [<000003ffe0119788>] foobar+0x38/0x50 [<000003ffe185bc2e>] arch_cpu_finalize_init+0x26/0x60 [<000003ffe185654c>] start_kernel+0x53c/0x5d8 [<000003ffe010002e>] startup_continue+0x2e/0x40 A better solution would be to replace or patch the branch instruction to __WARN_trap() with the monitor call instruction, similar to what is done for x86 [1]. However s390 does not support static_cond_calls(). Therefore use the simple approach for the time being. [1] commit 860238af7a33 ("x86_64/bug: Inline the UD1") Signed-off-by: Heiko Carstens --- arch/s390/include/asm/bug.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/s390/include/asm/bug.h b/arch/s390/include/asm/bug.h index e6e8b492c0e7..89187ec6f6b0 100644 --- a/arch/s390/include/asm/bug.h +++ b/arch/s390/include/asm/bug.h @@ -99,6 +99,8 @@ do { \ int __flags =3D (flags) | BUGFLAG_WARNING | BUGFLAG_ARGS; \ \ __WARN_trap(__WARN_bug_entry(__flags, format), ## arg); \ + /* prevent tail-call optimization */ \ + asm(""); \ } while (0) =20 #define __WARN_printf(taint, fmt, arg...) \ --=20 2.51.0