From nobody Sat Nov 15 05:35:26 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1755107038; cv=none; d=zohomail.com; s=zohoarc; b=JrPDHvN1fywOKEESgycUplKnHFMiSBgGmTkzMKUB1UIi7gwq7XwFvi67X3s99OwpHi6Vq1gQOkxjVYcI6/2UJ0QwOrGAHeTxTaoRPSNyhNszv7s+MsHqfiYzmhmndAh69pKHzQoPb+ACMQfrsrmFmHXWBTYyf5u0r6PSiQXWGt0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755107038; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=TKzUtNPDDvgGMPcPvRNrysDoMV7wwMADifmN9SZ0t1A=; b=JASF8uQvgCogeVcdUPZwiPs2iw9PLGxgCgpNyI9w2GyL4PdI44D2YtjH2PaIFJdcnvdjYUNvgrC1GZvJfKCCPDRg2aLhH6Oyze3hgVSCSzlLnLdsxQTwEIGaXYltQAcyt2IDWEIVppjW++BSBD1xKy7pIUfJa8QVygudcNlvYmQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1755107038921357.99434119447255; Wed, 13 Aug 2025 10:43:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1umFUY-00044x-LE; Wed, 13 Aug 2025 13:42:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1umFUR-00040A-Cb; Wed, 13 Aug 2025 13:42:19 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1umFUM-0006Zn-Gz; Wed, 13 Aug 2025 13:42:19 -0400 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 57DAxhTh011153; Wed, 13 Aug 2025 17:41:56 GMT 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 48dx2d5xu2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 13 Aug 2025 17:41:55 +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 57DF7bgU010656; Wed, 13 Aug 2025 17:41:54 GMT Received: from smtprelay06.dal12v.mail.ibm.com ([172.16.1.8]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 48egnurmyx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 13 Aug 2025 17:41:54 +0000 Received: from smtpav02.dal12v.mail.ibm.com (smtpav02.dal12v.mail.ibm.com [10.241.53.101]) by smtprelay06.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 57DHfr9529426374 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 13 Aug 2025 17:41:54 GMT Received: from smtpav02.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id DE7CA5805C; Wed, 13 Aug 2025 17:41:53 +0000 (GMT) Received: from smtpav02.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 510D85805A; Wed, 13 Aug 2025 17:41:53 +0000 (GMT) Received: from IBM-D32RQW3.ibm.com (unknown [9.61.255.61]) by smtpav02.dal12v.mail.ibm.com (Postfix) with ESMTP; Wed, 13 Aug 2025 17:41:53 +0000 (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=TKzUtNPDDvgGMPcPv RNrysDoMV7wwMADifmN9SZ0t1A=; b=CgxgqIZuWfxpOyC/6o5MHd+kKgMn5X67G g3mIzlelZwbnhA4NKQhqgwB8Y6ghLO4VGN0/taSZEmKg1AfoPHSfkBBaCXTjWo1u TLF46Umzxol/ebatJ3ykfjzjmuGZ5/uSDB2Xz8OKwpoJK2PIHw5YDoAjT7EiJYO+ 67A3pqoRV5lxr7fm1IlAYni6bICkP/697IkGDO7MYycDT1939HaUi3MtVx3CWPE7 E9mPQFLrmqzxh2zDh8KwKvwD1Mt2JSjfUJmuS/ldJnPuRLrUsWMNl7L8gNVs4M3m 1MMdFaUqJ+r778W39lnTK0qTpycHquvyhk1aoeFJ29OQzcWGNszbQ== From: Farhan Ali To: qemu-s390x@nongnu.org Cc: qemu-devel@nongnu.org, mjrosato@linux.ibm.com, thuth@redhat.com, alex.williamson@redhat.com, clg@redhat.com, alifm@linux.ibm.com Subject: [PATCH v1 1/4] [NOTFORMERGE] linux-headers: Update for zpci vfio device Date: Wed, 13 Aug 2025 10:41:48 -0700 Message-ID: <20250813174152.1238-2-alifm@linux.ibm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250813174152.1238-1-alifm@linux.ibm.com> References: <20250813174152.1238-1-alifm@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODEyMDIyNCBTYWx0ZWRfX0H230/AsJJNQ AJKaFwaa6jIL48lA8obcASMQji1pmrKEdQm3I7IStDZ9XWLJdwWLAkjrQuCx4xDBru1zCTecMTX VpCPhHBRDhjF2Ety5S6uZa3vpX7pN3Sf+IVdXT+gFR1PPGyWaS8jf6pO8v3GmcqMiy4ukllkx/k xPvD/k3Y3iQhITRap+aH53sti+ZuL8xdlwuVcyKAOdfAYODNuUui/uJWBs/RTo3dvesjkwnKiNp Tvwy8acryK3jt1TVXW7JmIq5PAOaXF6julLOprGu1ID1qvhW9NDhgTC7z++j5/qRfGhNmZ4IQvI HyKhTdGb/vxqXVVOBgLtoIaul6tF6T6mEXKJPtFkoS9deUOk8GaHMPEjonP32PB9UcRZWt2eDTx gOsmzwTG X-Proofpoint-GUID: BfEA3lXq-TrETmeSJHgPNgToPgoKVRrS X-Authority-Analysis: v=2.4 cv=C9zpyRP+ c=1 sm=1 tr=0 ts=689cce63 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=2OwXVqhp2XgA:10 a=VnNF1IyMAAAA:8 a=w0j_Q2mzfpb_jSiM1AsA:9 X-Proofpoint-ORIG-GUID: BfEA3lXq-TrETmeSJHgPNgToPgoKVRrS X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-13_01,2025-08-11_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 bulkscore=0 phishscore=0 suspectscore=0 clxscore=1011 impostorscore=0 malwarescore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508120224 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=alifm@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1755107040996124100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Farhan Ali --- linux-headers/linux/vfio.h | 2 ++ linux-headers/linux/vfio_zdev.h | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h index 79bf8c0cc5..a437169bce 100644 --- a/linux-headers/linux/vfio.h +++ b/linux-headers/linux/vfio.h @@ -369,6 +369,8 @@ struct vfio_region_info_cap_type { */ #define VFIO_REGION_SUBTYPE_IBM_NVLINK2_ATSD (1) =20 +#define VFIO_REGION_SUBTYPE_IBM_ZPCI_ERROR_REGION (2) + /* sub-types for VFIO_REGION_TYPE_GFX */ #define VFIO_REGION_SUBTYPE_GFX_EDID (1) =20 diff --git a/linux-headers/linux/vfio_zdev.h b/linux-headers/linux/vfio_zde= v.h index 77f2aff1f2..bcd06f334a 100644 --- a/linux-headers/linux/vfio_zdev.h +++ b/linux-headers/linux/vfio_zdev.h @@ -82,4 +82,9 @@ struct vfio_device_info_cap_zpci_pfip { __u8 pfip[]; }; =20 +struct vfio_device_zpci_err_region { + __u16 pec; + int pending_errors; +}; + #endif --=20 2.43.0 From nobody Sat Nov 15 05:35:26 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1755107039; cv=none; d=zohomail.com; s=zohoarc; b=Vr6+55u0m3Ga9inyun84j/b71VPEKFz9abn4bfMEdWX90vRDp7T4GrDSJfR/X+U9o2vVL2LAuI5mPRJe1IG8IxnNLgTwmky1hqxvwtZYqrhvjtdtsbF915j50lAr+fcYURhOc+qIhWwIxBJ22jrtyARXc+kajAbjA2bHBmmdUTE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755107039; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=uB2bTzkXppJViLbSD8t1yaWti4gnWnEsF4ElFDnBaaY=; b=WnuX44IsC2UoFxvtvwzQKkzwN+SRC9iPjaKv0K7VHBFMqeh1WjmMNQznPxj5zJb7rHK6e23O8Z0JfoeSOVJqzIG3Ys04FOt8dJuUtt1D6LW71XsIjunYD4D0ow5xfVYSmjO7vLMq59tQ5xOXFDnHv1VFuaFR7o2OS5LtX7c4Nos= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1755107039557678.1474232802476; Wed, 13 Aug 2025 10:43:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1umFUU-00042B-Dg; Wed, 13 Aug 2025 13:42:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1umFUJ-0003wu-I5; Wed, 13 Aug 2025 13:42:11 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1umFUC-0006Zr-VC; Wed, 13 Aug 2025 13:42:11 -0400 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 57DCZwjf015923; Wed, 13 Aug 2025 17:41:57 GMT 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 48dx14nvwy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 13 Aug 2025 17:41:57 +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 57DFhZvv026275; Wed, 13 Aug 2025 17:41:56 GMT Received: from smtprelay07.dal12v.mail.ibm.com ([172.16.1.9]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 48eh218jnc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 13 Aug 2025 17:41:55 +0000 Received: from smtpav02.dal12v.mail.ibm.com (smtpav02.dal12v.mail.ibm.com [10.241.53.101]) by smtprelay07.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 57DHfs6A10749140 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 13 Aug 2025 17:41:54 GMT Received: from smtpav02.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 90BA458051; Wed, 13 Aug 2025 17:41:54 +0000 (GMT) Received: from smtpav02.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 046165805A; Wed, 13 Aug 2025 17:41:54 +0000 (GMT) Received: from IBM-D32RQW3.ibm.com (unknown [9.61.255.61]) by smtpav02.dal12v.mail.ibm.com (Postfix) with ESMTP; Wed, 13 Aug 2025 17:41:53 +0000 (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=uB2bTzkXppJViLbSD 8t1yaWti4gnWnEsF4ElFDnBaaY=; b=BnWq3GebsYkUAbOaW4nK5/JK4PYPdxeOn f5ajI9eJcEmjWYGyPuZMmOYYWRLLuTJAv+4blq7U34Mm4GL0vazrKL0Z8xEsZ/AH YQXO4sRwEpQONtv2opEGeCrtfQ+3uEZesSGmL7A+jdh6pSSjqDdA1EfOo34D2QKE znt73LpV3Dp2VBWWH3ucDMVGdSU0IuH67Q9qI2joTwJOudS0erZLLL7SK8VJbFt2 BEhMCo7ib53iF310N6NAkG2dNDlI7YL/rhpAYwI8gU/F2dxQHgoX6ZbBMS31epLU o8PT2Tuj0Dd1NNiaY0/Zk6FaUh6QjPNYvlxCx9uvAGKFvkeGaZdMQ== From: Farhan Ali To: qemu-s390x@nongnu.org Cc: qemu-devel@nongnu.org, mjrosato@linux.ibm.com, thuth@redhat.com, alex.williamson@redhat.com, clg@redhat.com, alifm@linux.ibm.com Subject: [PATCH v1 2/4] vfio/pci: Add an architecture specific error handler Date: Wed, 13 Aug 2025 10:41:49 -0700 Message-ID: <20250813174152.1238-3-alifm@linux.ibm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250813174152.1238-1-alifm@linux.ibm.com> References: <20250813174152.1238-1-alifm@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: AHhBhLTjLY30DkQBelJZgqk90t6uyXrr X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODEyMDIyNCBTYWx0ZWRfX4J+jn/TgNV77 8pDYLsA3wxYDO4lvTi787pUzTBZN+hNsOnKRTg+fdj4cMbMFO7Bfh9EVNFgcloO+d+kNOovR4cF gdPZwhHIbL186AFnK3oU9TD53KMzOfdCLt6g48YP+6MZUlqPA6PqiV0etD5KufuNlmP40Iz4FvE /qghHhH3zvfwXDh2yc5cw+La9sX8j3hPOHr+qU3iGB5bj+KqDbIseIAFNIk4yq1rcHP5E3eF5FS rX6K7T/AyxFJKKHtztl7jN9juyfVhFN2KPfmA1Ed+xbykN121U7Edq0kEOawmCZOqI6Hc/DEyd/ b7swa1uOdxUQ1tVIUaxB89XCgp8hRAagpeRquvS8imyaDeU+Bn2lLF+WI118H/T+FEpDkU/8hwT SEX7JQL7 X-Proofpoint-GUID: AHhBhLTjLY30DkQBelJZgqk90t6uyXrr X-Authority-Analysis: v=2.4 cv=fLg53Yae c=1 sm=1 tr=0 ts=689cce65 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=2OwXVqhp2XgA:10 a=VnNF1IyMAAAA:8 a=9EM4svpYijrQoNaXIWkA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-13_01,2025-08-11_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 clxscore=1011 spamscore=0 priorityscore=1501 impostorscore=0 phishscore=0 malwarescore=0 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508120224 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=alifm@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, T_SPF_TEMPERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1755107043069124100 Content-Type: text/plain; charset="utf-8" Provide a architecture specific error handling callback, that can be used by platforms to handle PCI errors for passthrough devices. Signed-off-by: Farhan Ali --- hw/vfio/pci.c | 5 +++++ hw/vfio/pci.h | 1 + 2 files changed, 6 insertions(+) diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index 07257d0fa0..3c71d19306 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -3026,6 +3026,11 @@ static void vfio_err_notifier_handler(void *opaque) return; } =20 + if (vdev->arch_err_handler) { + vdev->arch_err_handler(vdev); + return; + } + /* * TBD. Retrieve the error details and decide what action * needs to be taken. One of the actions could be to pass diff --git a/hw/vfio/pci.h b/hw/vfio/pci.h index 810a842f4a..45d4405e47 100644 --- a/hw/vfio/pci.h +++ b/hw/vfio/pci.h @@ -145,6 +145,7 @@ struct VFIOPCIDevice { EventNotifier err_notifier; EventNotifier req_notifier; int (*resetfn)(struct VFIOPCIDevice *); + void (*arch_err_handler)(struct VFIOPCIDevice *); uint32_t vendor_id; uint32_t device_id; uint32_t sub_vendor_id; --=20 2.43.0 From nobody Sat Nov 15 05:35:26 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1755107036; cv=none; d=zohomail.com; s=zohoarc; b=m2eVzLZA+mgZDu5sbIhwfmopz5dzi+NCYib7CLmCkv0BX01YtzOIWJUETE3QoUBgbgm5BFhXVZxxga/Nnv60vcgeehZN/PHHfABhOtRvzjUbeg+PQC3OS2lfRFSbL1uGhpJdRDOzEfYrncYChWNDWNDKax2qaWWlAt7237RVxoY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755107036; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=QZla6X8ncR2XNnKnbA92sFJoa3p4OKGXOP85ivV1B8Y=; b=ZjQRklD+AU0zlPP8nBDAOceexad6xXS05n9XcidVeafP3gkSwJBEPPpyLa9ewEtiVg/mG4bYUn2FP1EcV/u1K6H0dECUHdawKGN5JUi/H8DFoZGFKyhkfzfnM3fhJaR0u7JTzT4/NRYUkeedjP8Moog59pRRFKvurkGELdS0xbY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1755107036135166.95723236119431; Wed, 13 Aug 2025 10:43:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1umFUJ-0003wf-1c; Wed, 13 Aug 2025 13:42:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1umFUE-0003uf-Fv; Wed, 13 Aug 2025 13:42:06 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1umFUB-0006Zx-Jx; Wed, 13 Aug 2025 13:42:06 -0400 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 57DBZ5Uj025676; Wed, 13 Aug 2025 17:41:58 GMT Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 48ehaaa59x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 13 Aug 2025 17:41:58 +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 57DGNZDh025628; Wed, 13 Aug 2025 17:41:57 GMT Received: from smtprelay01.wdc07v.mail.ibm.com ([172.16.1.68]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 48ejvmg77p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 13 Aug 2025 17:41:57 +0000 Received: from smtpav02.dal12v.mail.ibm.com (smtpav02.dal12v.mail.ibm.com [10.241.53.101]) by smtprelay01.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 57DHftKh35324370 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 13 Aug 2025 17:41:55 GMT Received: from smtpav02.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3BA6C5805E; Wed, 13 Aug 2025 17:41:55 +0000 (GMT) Received: from smtpav02.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id AC9335805A; Wed, 13 Aug 2025 17:41:54 +0000 (GMT) Received: from IBM-D32RQW3.ibm.com (unknown [9.61.255.61]) by smtpav02.dal12v.mail.ibm.com (Postfix) with ESMTP; Wed, 13 Aug 2025 17:41:54 +0000 (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=QZla6X8ncR2XNnKnb A92sFJoa3p4OKGXOP85ivV1B8Y=; b=sSE4C2E98vSP3PwubjLkd63YMs1Q8bDrG DRvfvd8SN93gvleUxpv+eFfbfZMVNXKp9ZBCRWS1+58MtjrragP7WrjBoDGxT29x MmufuhqaMEr/H2p+CIYKZXBIEjB8syPmMmqZ4GjempvMWjTaXKDLrdE2UcALdEif FuWLlMbRKz7F4CJLIHinJD+CYhlVXDd8IXY6L00xzGKTv8GM1QtoKbRKCUOg/9N5 NJzXL5sn6H28VPsxYkiUw6G3n/fk/zOCm9T4YLuAxD4Szh17s2ztdcPbqlOySu6g PZAElBfO0bQFwAwSBj1KTs4VO4ot+kkwQDmkDWmNEzrPDqgFkaaYQ== From: Farhan Ali To: qemu-s390x@nongnu.org Cc: qemu-devel@nongnu.org, mjrosato@linux.ibm.com, thuth@redhat.com, alex.williamson@redhat.com, clg@redhat.com, alifm@linux.ibm.com Subject: [PATCH v1 3/4] s390x/pci: Add PCI error handling for vfio pci devices Date: Wed, 13 Aug 2025 10:41:50 -0700 Message-ID: <20250813174152.1238-4-alifm@linux.ibm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250813174152.1238-1-alifm@linux.ibm.com> References: <20250813174152.1238-1-alifm@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=KPRaDEFo c=1 sm=1 tr=0 ts=689cce66 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=2OwXVqhp2XgA:10 a=VnNF1IyMAAAA:8 a=jSCLr9NRB7a5bD1T82IA:9 X-Proofpoint-ORIG-GUID: hMhGZDT-KMItolRM8y46Pynv_wI8VIxW X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODEyMDIyNCBTYWx0ZWRfX2pAl4eqD6vRd 0fYtqVYto4CfCbx8Ggh6kdpVcfpKbUiVOAsOjq+aoViWYwzFzNLu6v8CYfzcoOy3M5mdTmdPMqi 5bWrPtqmCLTZTIpRgMCofgg91M4z44fOiMgdNtWepADgrLUwwYF/chlIiR6Bnr8qVojdJMusd6y on2zoIXCkR0MnRje+MoXJm7mwfWMvLMTn2vQx+z1NDSzWfKRjaUW3MHNAHKP5oLfndanvCorCtY pttrwMF51SMIvajAx1R1EW7EMzpMz/13VJavi8tbVAcrkEF9N/B97PVicKO91lcktni2PozQQ1F 2Kb+ahr4CApa9QlMAHb0Cy8te7B2qedj2PC91goX1SXo7wp143KvqtKO3pWFJnspqPnDkJOmCvD L3H+lnU4 X-Proofpoint-GUID: hMhGZDT-KMItolRM8y46Pynv_wI8VIxW X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-13_01,2025-08-11_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 bulkscore=0 adultscore=0 priorityscore=1501 malwarescore=0 spamscore=0 clxscore=1015 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508120224 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=alifm@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1755107039448124100 Content-Type: text/plain; charset="utf-8" Add an s390x specific callback for vfio error handling. For s390x pci devices, we have platform specific error information. We need to retrieve this error information for passthrough devices. This is done via a memory region which exposes that information. Once this error information is retrieved we can then inject an error into the guest, and let the guest drive the recovery. Signed-off-by: Farhan Ali --- hw/s390x/s390-pci-bus.c | 5 ++ hw/s390x/s390-pci-vfio.c | 82 ++++++++++++++++++++++++++++++++ include/hw/s390x/s390-pci-bus.h | 1 + include/hw/s390x/s390-pci-vfio.h | 2 + 4 files changed, 90 insertions(+) diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c index f87d2748b6..af42eb9938 100644 --- a/hw/s390x/s390-pci-bus.c +++ b/hw/s390x/s390-pci-bus.c @@ -158,6 +158,8 @@ static void s390_pci_perform_unplug(S390PCIBusDevice *p= bdev) { HotplugHandler *hotplug_ctrl; =20 + qemu_mutex_destroy(&pbdev->err_handler_lock); + if (pbdev->pft =3D=3D ZPCI_PFT_ISM) { notifier_remove(&pbdev->shutdown_notifier); } @@ -1140,6 +1142,7 @@ static void s390_pcihost_plug(HotplugHandler *hotplug= _dev, DeviceState *dev, pbdev->iommu->pbdev =3D pbdev; pbdev->state =3D ZPCI_FS_DISABLED; set_pbdev_info(pbdev); + qemu_mutex_init(&pbdev->err_handler_lock); =20 if (object_dynamic_cast(OBJECT(dev), "vfio-pci")) { /* @@ -1164,6 +1167,8 @@ static void s390_pcihost_plug(HotplugHandler *hotplug= _dev, DeviceState *dev, pbdev->iommu->dma_limit =3D s390_pci_start_dma_count(s, pbdev); /* Fill in CLP information passed via the vfio region */ s390_pci_get_clp_info(pbdev); + /* Setup error handler for error recovery */ + s390_pci_setup_err_handler(pbdev); if (!pbdev->interp) { /* Do vfio passthrough but intercept for I/O */ pbdev->fh |=3D FH_SHM_VFIO; diff --git a/hw/s390x/s390-pci-vfio.c b/hw/s390x/s390-pci-vfio.c index aaf91319b4..ceee342f4a 100644 --- a/hw/s390x/s390-pci-vfio.c +++ b/hw/s390x/s390-pci-vfio.c @@ -10,6 +10,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/error-report.h" =20 #include #include @@ -103,6 +104,70 @@ void s390_pci_end_dma_count(S390pciState *s, S390PCIDM= ACount *cnt) } } =20 +static int s390_pci_read_error_region(VFIOPCIDevice *vfio_pci, + struct vfio_device_zpci_err_region *= err) +{ + struct vfio_region_info *region =3D NULL; + g_autofree void *buf; + int ret; + + ret =3D vfio_device_get_region_info_type(&vfio_pci->vbasedev, + VFIO_REGION_TYPE_PCI_VENDOR_TYPE | PCI_VENDOR_ID_IBM, + VFIO_REGION_SUBTYPE_IBM_ZPCI_ERROR_REGION, ®ion); + + if (ret) { + error_report("Failed to get the region info for passthrough device" + " (rc=3D%d)", ret); + return ret; + } + + buf =3D g_malloc0(region->size); + + if (!buf) { + error_report("Failed to allocate memory for error region"); + return -ENOMEM; + } + + ret =3D pread(vfio_pci->vbasedev.fd, buf, region->size, region->offset= ); + if (ret !=3D region->size) { + error_report("Failed to read vfio zpci error region"); + return -EINVAL; + } + + memcpy(err, (struct vfio_device_zpci_err_region *) buf, + sizeof(struct vfio_device_zpci_err_region)); + return 0; +} + +static void s390_pci_err_handler(VFIOPCIDevice *vfio_pci) +{ + S390PCIBusDevice *pbdev; + struct vfio_device_zpci_err_region err; + int ret; + + pbdev =3D s390_pci_find_dev_by_target(s390_get_phb(), + DEVICE(&vfio_pci->pdev)->id); + + QEMU_LOCK_GUARD(&pbdev->err_handler_lock); + + ret =3D s390_pci_read_error_region(vfio_pci, &err); + if (ret) { + return; + } + + pbdev->state =3D ZPCI_FS_ERROR; + s390_pci_generate_error_event(err.pec, pbdev->fh, pbdev->fid, 0, 0); + + while (err.pending_errors) { + ret =3D s390_pci_read_error_region(vfio_pci, &err); + if (ret) { + return; + } + s390_pci_generate_error_event(err.pec, pbdev->fh, pbdev->fid, 0, 0= ); + } + return; +} + static void s390_pci_read_base(S390PCIBusDevice *pbdev, struct vfio_device_info *info) { @@ -369,3 +434,20 @@ void s390_pci_get_clp_info(S390PCIBusDevice *pbdev) s390_pci_read_util(pbdev, info); s390_pci_read_pfip(pbdev, info); } + +void s390_pci_setup_err_handler(S390PCIBusDevice *pbdev) +{ + int ret; + struct vfio_region_info *region =3D NULL; + VFIOPCIDevice *vdev =3D container_of(pbdev->pdev, VFIOPCIDevice, pdev= ); + + ret =3D vfio_device_get_region_info_type(&vdev->vbasedev, + VFIO_REGION_TYPE_PCI_VENDOR_TYPE | PCI_VENDOR_ID_IBM, + VFIO_REGION_SUBTYPE_IBM_ZPCI_ERROR_REGION, ®ion); + + if (ret) { + info_report("Automated error recovery not available for passthroug= h device"); + return; + } + vdev->arch_err_handler =3D s390_pci_err_handler; +} diff --git a/include/hw/s390x/s390-pci-bus.h b/include/hw/s390x/s390-pci-bu= s.h index 04944d4fed..3795e0bbfc 100644 --- a/include/hw/s390x/s390-pci-bus.h +++ b/include/hw/s390x/s390-pci-bus.h @@ -364,6 +364,7 @@ struct S390PCIBusDevice { bool forwarding_assist; bool aif; bool rtr_avail; + QemuMutex err_handler_lock; QTAILQ_ENTRY(S390PCIBusDevice) link; }; =20 diff --git a/include/hw/s390x/s390-pci-vfio.h b/include/hw/s390x/s390-pci-v= fio.h index ae1b126ff7..66b274293c 100644 --- a/include/hw/s390x/s390-pci-vfio.h +++ b/include/hw/s390x/s390-pci-vfio.h @@ -22,6 +22,7 @@ S390PCIDMACount *s390_pci_start_dma_count(S390pciState *s, void s390_pci_end_dma_count(S390pciState *s, S390PCIDMACount *cnt); bool s390_pci_get_host_fh(S390PCIBusDevice *pbdev, uint32_t *fh); void s390_pci_get_clp_info(S390PCIBusDevice *pbdev); +void s390_pci_setup_err_handler(S390PCIBusDevice *pbdev); #else static inline bool s390_pci_update_dma_avail(int fd, unsigned int *avail) { @@ -39,6 +40,7 @@ static inline bool s390_pci_get_host_fh(S390PCIBusDevice = *pbdev, uint32_t *fh) return false; } static inline void s390_pci_get_clp_info(S390PCIBusDevice *pbdev) { } +static inline void s390_pci_setup_err_handler(S390PCIBusDevice *pbdev) { } #endif =20 #endif --=20 2.43.0 From nobody Sat Nov 15 05:35:26 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1755107045; cv=none; d=zohomail.com; s=zohoarc; b=m+c4B17qiDmMd+Skbyjvw/KSU6cGBxTpwEX/2Ui1JQNbiyUJxl50mZkn/HiiGfIJPD4jz3MbKBAvmHi4cF9AkHt3/OZxQYSt08gu2W3neizNNhk7MLWcrAyRd3UI52TQsTWAYMUyGUyPdvNbqNV+/5tMtzPXGeXVIMCAz8+gqmc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755107045; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=B5ta6HOMcmrLv2Sy+6xx72FcquoyT7XUv0NzntvhIq4=; b=ana7UAodquW4YhY1tJRuPovk58xMIkU8asgdyo4mCwjXwDn/JkbnHgv0AzBVVuJuc7ndog1APdJ7Lz/6+tt+uPPoRbkXglepgcauCLqwp1JVcOS3sCDSxZRdRy7MHKF0M93G2gPdkV9xbY2rMNH381BtIs9VI+nuoW0OzhRkujQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1755107045702786.0480810781434; Wed, 13 Aug 2025 10:44:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1umFUH-0003wO-2l; Wed, 13 Aug 2025 13:42:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1umFUE-0003ue-EB; Wed, 13 Aug 2025 13:42:06 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1umFUB-0006Zw-El; Wed, 13 Aug 2025 13:42:06 -0400 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 57DCQfRv031309; Wed, 13 Aug 2025 17:41:58 GMT 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 48dvrp5pfh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 13 Aug 2025 17:41:58 +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 57DFca9e020703; Wed, 13 Aug 2025 17:41:57 GMT Received: from smtprelay01.wdc07v.mail.ibm.com ([172.16.1.68]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 48ehnq0df1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 13 Aug 2025 17:41:57 +0000 Received: from smtpav02.dal12v.mail.ibm.com (smtpav02.dal12v.mail.ibm.com [10.241.53.101]) by smtprelay01.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 57DHfucq32375068 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 13 Aug 2025 17:41:56 GMT Received: from smtpav02.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id DDC5D5805A; Wed, 13 Aug 2025 17:41:55 +0000 (GMT) Received: from smtpav02.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5795758051; Wed, 13 Aug 2025 17:41:55 +0000 (GMT) Received: from IBM-D32RQW3.ibm.com (unknown [9.61.255.61]) by smtpav02.dal12v.mail.ibm.com (Postfix) with ESMTP; Wed, 13 Aug 2025 17:41:55 +0000 (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=B5ta6HOMcmrLv2Sy+ 6xx72FcquoyT7XUv0NzntvhIq4=; b=e+XOm7oEdsTvEBSUfBVNbzrVN2fg/zZS7 Xza5Od6ees/bFP/RVFde0FpUNi3wMVkti4WHvEBf9aJkz9A+mKwT1Js2rYBsI6mX nncgKTtVYqXpO50lXBVjyt4Ud5TWgr69hDmyAuHQzWZSeFxUvzZa/Rx2LW+P1gaO WW27Z93s7RnY/Z6ddnCXLTP66o7oBbtmWm2+cydqyRwAn+aI4OWq4q39/4myl+1d V//ZpF6NELNaygi9RLsOv0+Mafvk/c5/o5fmdxbU+e4zwK8quFItwxKVyKz6Zpj4 03gqvVDTTNXenjEBooaupvCCFQuVB9cOcXRI32QaN5juaCWcPo6NA== From: Farhan Ali To: qemu-s390x@nongnu.org Cc: qemu-devel@nongnu.org, mjrosato@linux.ibm.com, thuth@redhat.com, alex.williamson@redhat.com, clg@redhat.com, alifm@linux.ibm.com Subject: [PATCH v1 4/4] s390x/pci: Reset a device in error state Date: Wed, 13 Aug 2025 10:41:51 -0700 Message-ID: <20250813174152.1238-5-alifm@linux.ibm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250813174152.1238-1-alifm@linux.ibm.com> References: <20250813174152.1238-1-alifm@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwODEyMDIxOSBTYWx0ZWRfX2suELHV1OudE JajGInCfYF8KdfoK5hSoANjEiJk/HwVo8/ijRePcEs8EhbYcH90lDy6M1HdFB0Lno9nRGim0a6G AECyV6ww+aTRU1Uhfm1AueWiMQdf2h0cyJ1QP1Y/bGJuPDiWTvH0TG8vH5+V69XEle5GY5m5gTH TimIE7XeRs5OBuLuDZwg4/9U2gjoxuKNPVTzSo5JvGNcEVBVAXrGFNk/xV3tNKlcPdbcoU9Cn2o 9fvLQs+TDiocvquKx5a8hGkDdSGvQfXLqPXP7TO+gN1C/kgcoACxfcgwb51Ba2sa1uUAzIf4MQs CUChUYlgOlKxb72Kjc4McLB31trjgA75N+g7IpuufOdD+EX+XiKsQY3/+//EfNRf8ECF3Pth/nV cUEsCpdG X-Authority-Analysis: v=2.4 cv=GrpC+l1C c=1 sm=1 tr=0 ts=689cce66 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=2OwXVqhp2XgA:10 a=VnNF1IyMAAAA:8 a=A6rq8h5Md1LYvE6mRIYA:9 X-Proofpoint-GUID: U4gCi9SuUZ7UcgxBlh-F-3QaTeA01sQn X-Proofpoint-ORIG-GUID: U4gCi9SuUZ7UcgxBlh-F-3QaTeA01sQn X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-08-13_01,2025-08-11_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0 spamscore=0 impostorscore=0 suspectscore=0 phishscore=0 bulkscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2508120219 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=alifm@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1755107046566116600 Content-Type: text/plain; charset="utf-8" For passthrough devices in error state, for a guest driven reset of the device we can attempt a hot reset to recover the device. A hot reset of the device will trigger a CLP disable/enable cycle on the host to bring the device into a recovered state. Signed-off-by: Farhan Ali --- hw/s390x/s390-pci-bus.c | 7 +++++++ hw/s390x/s390-pci-vfio.c | 6 ++++++ include/hw/s390x/s390-pci-vfio.h | 2 ++ 3 files changed, 15 insertions(+) diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c index af42eb9938..c9c2d775f0 100644 --- a/hw/s390x/s390-pci-bus.c +++ b/hw/s390x/s390-pci-bus.c @@ -1493,6 +1493,8 @@ static void s390_pci_device_reset(DeviceState *dev) return; case ZPCI_FS_STANDBY: break; + case ZPCI_FS_ERROR: + break; default: pbdev->fh &=3D ~FH_MASK_ENABLE; pbdev->state =3D ZPCI_FS_DISABLED; @@ -1505,6 +1507,11 @@ static void s390_pci_device_reset(DeviceState *dev) } else if (pbdev->summary_ind) { pci_dereg_irqs(pbdev); } + + if (pbdev->state =3D=3D ZPCI_FS_ERROR) { + s390_pci_reset(pbdev); + } + if (pbdev->iommu->enabled) { pci_dereg_ioat(pbdev->iommu); } diff --git a/hw/s390x/s390-pci-vfio.c b/hw/s390x/s390-pci-vfio.c index ceee342f4a..4ec5e2cd95 100644 --- a/hw/s390x/s390-pci-vfio.c +++ b/hw/s390x/s390-pci-vfio.c @@ -168,6 +168,12 @@ static void s390_pci_err_handler(VFIOPCIDevice *vfio_p= ci) return; } =20 +void s390_pci_reset(S390PCIBusDevice *pbdev) +{ + VFIOPCIDevice *vfio_pci =3D container_of(pbdev->pdev, VFIOPCIDevice, p= dev); + ioctl(vfio_pci->vbasedev.fd, VFIO_DEVICE_RESET); +} + static void s390_pci_read_base(S390PCIBusDevice *pbdev, struct vfio_device_info *info) { diff --git a/include/hw/s390x/s390-pci-vfio.h b/include/hw/s390x/s390-pci-v= fio.h index 66b274293c..c28dafeed8 100644 --- a/include/hw/s390x/s390-pci-vfio.h +++ b/include/hw/s390x/s390-pci-vfio.h @@ -23,6 +23,7 @@ void s390_pci_end_dma_count(S390pciState *s, S390PCIDMACo= unt *cnt); bool s390_pci_get_host_fh(S390PCIBusDevice *pbdev, uint32_t *fh); void s390_pci_get_clp_info(S390PCIBusDevice *pbdev); void s390_pci_setup_err_handler(S390PCIBusDevice *pbdev); +void s390_pci_reset(S390PCIBusDevice *pbdev); #else static inline bool s390_pci_update_dma_avail(int fd, unsigned int *avail) { @@ -41,6 +42,7 @@ static inline bool s390_pci_get_host_fh(S390PCIBusDevice = *pbdev, uint32_t *fh) } static inline void s390_pci_get_clp_info(S390PCIBusDevice *pbdev) { } static inline void s390_pci_setup_err_handler(S390PCIBusDevice *pbdev) { } +void s390_pci_reset(S390PCIBusDevice *pbdev) { } #endif =20 #endif --=20 2.43.0