From nobody Fri Sep 25 04:45:21 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8AD87382374; Wed, 16 Sep 2026 15:14:33 +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=1789571675; cv=none; b=csclTcWMAll7aymXnB6Fc7OM7UKXQDRRUAqDIsxbzCpXD6ShuTCqAYV5A6ib9lsq6SBOGyZ7HjMlEKW4ReBKpA7nQEXqurRF4lDsi3738GGOcq2e7F5z0vy5Z7JY13mZnVdx+NxyG9AkW9vuu/m/gdbI3zkJIiVy/7sj8INXYAw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789571675; c=relaxed/simple; bh=7cqApsxrrXF1iZBaYezLCsDW9Lz3TanCXVpVsFdHdeU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lPEw2jH1qF8KGFN5xQdaMLwFI1gmKS7G8OXbQU4XSTyNoR28xOWuI/w6zr4/MdIj+JilPpIKUGNpTD3h3PNvQNY88grlKG+2DDGuEfZJweW19Wduq1tKROJEYBiEth1pmhqF1wxIveIPOTgbiBJyh0qK9OtBU4grjETK35vU4OE= 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=fEZlb7/F; 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="fEZlb7/F" Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68GEVv2r3863232; Wed, 16 Sep 2026 15:14:32 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=FADIZB I9RVgxD2tSXrqyFP0Q/K/kD63anx3qbSxA5+A=; b=fEZlb7/FjPIKjniywRnJ6m 3w0JZHgp2ZkWc+QaKGfsrmZC4pVoc1sU3ZvW1gRZusat/gUZA+1oUn+pavcS+/Xd wkAlErW6h9JtQsxDKSDLAQ57avpPssih7ILKrc5re7tqz/v/ahUX6HVEyBo3/JD7 fx48DZl/2SeLUzWI7/sliRl4x7qObYh1REK+elp4rAVqAxZjk3Po1utm1rr4sHZk c98SMXSlqOdP/X4xUaRdCH+y1/u4fGdNAXjEdqxiOOBIORv7fXKBmCpbfAWVTj/F pHLiGwnxzO7jXyV5RnNQguKzlRxyZo8yWt6fiO12ZdfXdD46jKOoepk87Of77GZw == 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 4gmv5hw8ca-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 16 Sep 2026 15:14:31 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.11/8.18.1.11) with ESMTP id 68GEaInx1634620; Wed, 16 Sep 2026 15:14:30 GMT Received: from smtprelay04.dal12v.mail.ibm.com ([172.16.1.6]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4gpywexxtg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 16 Sep 2026 15:14:30 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (smtpav05.wdc07v.mail.ibm.com [10.39.53.232]) by smtprelay04.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68GFET6s12976664 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 16 Sep 2026 15:14:30 GMT Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B30BC5805F; Wed, 16 Sep 2026 15:14:29 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8762958059; Wed, 16 Sep 2026 15:14:26 +0000 (GMT) Received: from [127.0.1.1] (unknown [9.87.85.9]) by smtpav05.wdc07v.mail.ibm.com (Postfix) with ESMTP; Wed, 16 Sep 2026 15:14:26 +0000 (GMT) From: Niklas Schnelle Date: Wed, 16 Sep 2026 17:14:10 +0200 Subject: [PATCH v3 1/4] s390/pci: Fix leak of struct pci_dev reference in zpci_report_status() 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 Message-Id: <20260916-fix_zpci_report_status_pdev_leak-v3-1-61a2f980e71d@linux.ibm.com> References: <20260916-fix_zpci_report_status_pdev_leak-v3-0-61a2f980e71d@linux.ibm.com> In-Reply-To: <20260916-fix_zpci_report_status_pdev_leak-v3-0-61a2f980e71d@linux.ibm.com> To: Gerd Bayer , Matthew Rosato , Farhan Ali , Benjamin Block , Julian Ruess Cc: Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Sven Schnelle , Ramesh Errabolu , Tobias Schumacher , Halil Pasic , Peter Oberparleiter , Gerald Schaefer , Christian Borntraeger , Niklas Schnelle , linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3673; i=schnelle@linux.ibm.com; h=from:subject:message-id; bh=7cqApsxrrXF1iZBaYezLCsDW9Lz3TanCXVpVsFdHdeU=; b=owGbwMvMwCX2Wz534YHOJ2GMp9WSGLJWbfIpOq2t0cUu89PvimaJ0scJssVNuYaFs+saPY9u8 5jkUKDXUcrCIMbFICumyLKoy9lvXcEU0z1B/R0wc1iZQIYwcHEKwEQkNzP84b+476myjdaP/Py3 j4N5VUQnbCp8u/bdZyHXFeLf+f5OnM3IsIxT49/SaT/cVgvyee17GX3DcV9i976ZYkZCz6XEY0N LWAA= X-Developer-Key: i=schnelle@linux.ibm.com; a=openpgp; fpr=9DB000B2D2752030A5F72DDCAFE43F15E8C26090 X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE2MDIwNCBTYWx0ZWRfX+q24xGDxCGCR EreTtnNfX+eoMSO0aLGmy0TmJ61D4Z4S4weiOpYcEwbx2PfFI9NJX468Trn18K83v0JzRJTbhZy VQju1nj0DM6XQ81Un4PqFAUCJCYEGdwtHiuyrmWNOFi7agjLos0H0qD8kWyawjovZEkTPIWLP1z dXInnR4UBnhrUbqZO9vk0TRfMul2KEo34IcYC0sPffvi0WB/mviLesB5GhuhBWzR3Se2c2AF/Th INVVQByc5PTAqsd1ZOkowfUubVWiJOcQbf2Yh5/QsR8t3TOc7QgWEhz61CEjaW7KSpWN6Y+lfvY yCq2GO5eqq/6LNH5peMvou45747VknS2wqbRCxrWfG4zxhJ5/QolNudNT5040WM1VtW4OwciysN aFamdR3rrmzWNr5JGXHIa1zS1J5pbZyzU+i3DiASU1RBJTbSd/4rW0CpoYwAb41nYm3XEKHDuHQ BmY5DD6h6fNxNI+CrFw== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE2MDIwNCBTYWx0ZWRfX1NrsnIRacEY6 yFZpDfZex5MyjeSwzA3PDSNeKe7c4bjxWRVI6ojDgw4FGGoj6rujlEqUqEzeBKmgCJzqIqFKkx/ ZEWPXAABJ3Bkl4AzmW/Yp4TVNnFqtCc= X-Authority-Analysis: v=2.4 cv=Zsx4uN7G c=1 sm=1 tr=0 ts=6aaab257 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=Y2IxJ9c9Rs8Kov3niI8_:22 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=x3_7OtgpGyxeELnHUrcA:9 a=QEXdDO2ut3YA:10 X-Proofpoint-ORIG-GUID: r-x0GIgefrII0zk4wVQhQaJqeEgT5kv7 X-Proofpoint-GUID: r-x0GIgefrII0zk4wVQhQaJqeEgT5kv7 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-16_02,2026-09-16_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 impostorscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 bulkscore=0 adultscore=0 phishscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609160204 In zpci_report_status(), a reference to the pdev associated with the zdev being reported about is acquired using pci_get_slot(). This reference needs to be dropped with pci_dev_put(), but this call is missing, thus leaking the reference. On subsequent hot unplug, this will cause the struct pci_dev to not be released, leaking memory and preventing reattach. At the same time, the only existing caller already holds a pdev reference. So instead of reacquiring and then dropping another reference, simply pass the existing pdev pointer to zpci_report_status(). This gets rid of the need for pci_get_slot() as well as the zdev->zbus check. Cc: stable@vger.kernel.org Fixes: 4ec6054e7321 ("s390/pci: Report PCI error recovery results via SCLP") Signed-off-by: Niklas Schnelle Reviewed-by: Benjamin Block Reviewed-by: Farhan Ali --- arch/s390/pci/pci_event.c | 2 +- arch/s390/pci/pci_report.c | 11 +++++------ arch/s390/pci/pci_report.h | 4 +++- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/arch/s390/pci/pci_event.c b/arch/s390/pci/pci_event.c index f317a1465dad..3b4941b65840 100644 --- a/arch/s390/pci/pci_event.c +++ b/arch/s390/pci/pci_event.c @@ -298,7 +298,7 @@ static pci_ers_result_t zpci_event_attempt_error_recove= ry(struct pci_dev *pdev, pci_uevent_ers(pdev, PCI_ERS_RESULT_RECOVERED); out_unlock: device_unlock(&pdev->dev); - zpci_report_status(zdev, "recovery", status_str); + zpci_report_status(zdev, pdev, "recovery", status_str); =20 return ers_res; } diff --git a/arch/s390/pci/pci_report.c b/arch/s390/pci/pci_report.c index 7030f7052926..867419779219 100644 --- a/arch/s390/pci/pci_report.c +++ b/arch/s390/pci/pci_report.c @@ -89,7 +89,8 @@ static struct debug_view debug_log_view =3D { =20 /** * zpci_report_status - Report the status of operations on a PCI device - * @zdev: The PCI device for which to report status + * @zdev: The zPCI device for which to report status + * @pdev: The PCI device associated with the zdev if any, NULL otherwise * @operation: A string representing the operation reported * @status: A string representing the status of the operation * @@ -103,15 +104,15 @@ static struct debug_view debug_log_view =3D { * * Return: 0 on success an error code < 0 otherwise. */ -int zpci_report_status(struct zpci_dev *zdev, const char *operation, const= char *status) +int zpci_report_status(struct zpci_dev *zdev, struct pci_dev *pdev, + const char *operation, const char *status) { struct zpci_report_error *report; struct pci_driver *driver =3D NULL; - struct pci_dev *pdev =3D NULL; char *buf, *end; int ret; =20 - if (!zdev || !zdev->zbus) + if (!zdev) return -ENODEV; =20 /* Protected virtualization hosts get nothing from us */ @@ -121,8 +122,6 @@ int zpci_report_status(struct zpci_dev *zdev, const cha= r *operation, const char report =3D (void *)get_zeroed_page(GFP_KERNEL); if (!report) return -ENOMEM; - if (zdev->zbus->bus) - pdev =3D pci_get_slot(zdev->zbus->bus, zdev->devfn); if (pdev) driver =3D to_pci_driver(pdev->dev.driver); =20 diff --git a/arch/s390/pci/pci_report.h b/arch/s390/pci/pci_report.h index e08003d51a97..dd7b0b05001c 100644 --- a/arch/s390/pci/pci_report.h +++ b/arch/s390/pci/pci_report.h @@ -8,9 +8,11 @@ */ #ifndef __S390_PCI_REPORT_H #define __S390_PCI_REPORT_H +#include =20 struct zpci_dev; =20 -int zpci_report_status(struct zpci_dev *zdev, const char *operation, const= char *status); +int zpci_report_status(struct zpci_dev *zdev, struct pci_dev *pdev, + const char *operation, const char *status); =20 #endif /* __S390_PCI_REPORT_H */ --=20 2.53.0 From nobody Fri Sep 25 04:45:21 2026 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 921A238A72C; Wed, 16 Sep 2026 15:14:36 +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=1789571678; cv=none; b=Sfb+S2m9vCivL3rrBh90v6PD6MCeXV3eoQANSAiyLgdreY2xPREtIJl//ieas3SZUgguAT4rBWK3DYMasyh0rE2isFPv+eKLRAYWnZNeFJ7jgmfn4xYRwm4OuwsAt12q2S9f2UFF2u1WoM2cuyXN+ZZ8gkyrsXUNvRd0z93IPH8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789571678; c=relaxed/simple; bh=GC6gEaCPT0YK7vPMmtVnLI/Z4ceZjHbrLe4dhgkJ22M=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ooBvxTeBrMP9fN8uXzGFSd6JaDwUvwOnfQALgb6dgko904IzkjjcopM0K8Kx/4PmQwziOKVLHqxT1q+iDS2e2OIQjxPdSSYrGcwt80d9JzLPTqzVXHncBo6ZDJ84mLkkcbY8eFyjauZEp4quSUdl0LstH2jnL9RtZqI74J65cuE= 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=croTU5JS; 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="croTU5JS" Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68GEVpWw4007270; Wed, 16 Sep 2026 15:14:35 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=JWvBYq Yn/2ZOiUL2Pmg1UE0FFMWVSjPK+5ZNX0O/8QU=; b=croTU5JSJuJ++LI+v2H9OX Hejp5stpUU12OF+IqoBVy1jzD+DIRf4JnaCR7SHapwhK+R6UKvR6w6H3XI6S6Qiy lDOrBaxZ1RwqKi4brU8RmZqleXlzq8w7mHlni9LORTPB+skl9K3XAUYj332Yxn97 OSgp+6M1m5ipqRvOd6KU623f9K1Th2m73MrKv6Tly/c4oau0EhkI2FfkUHRFInL/ R9gt22oDq9CtAjKJHq0RbgXGt4PcEWY3rSa9Dnh7RWkaulvniFv08QyERXp4vhpl Mqh5POQlygNVnd7fpMMrkPpRaydo2cMTCBShC839XCdKiqsvDyD3rh8/TA9SEJuA == 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 4gmx83wawj-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 16 Sep 2026 15:14:35 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.11/8.18.1.11) with ESMTP id 68GEaDpn1571790; Wed, 16 Sep 2026 15:14:34 GMT Received: from smtprelay01.wdc07v.mail.ibm.com ([172.16.1.68]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4gq03bxwr2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 16 Sep 2026 15:14:34 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (smtpav05.wdc07v.mail.ibm.com [10.39.53.232]) by smtprelay01.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68GFEXbE60293576 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 16 Sep 2026 15:14:33 GMT Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3C9275805F; Wed, 16 Sep 2026 15:14:33 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0F93658053; Wed, 16 Sep 2026 15:14:30 +0000 (GMT) Received: from [127.0.1.1] (unknown [9.87.85.9]) by smtpav05.wdc07v.mail.ibm.com (Postfix) with ESMTP; Wed, 16 Sep 2026 15:14:29 +0000 (GMT) From: Niklas Schnelle Date: Wed, 16 Sep 2026 17:14:11 +0200 Subject: [PATCH v3 2/4] s390/pci: Fix missing device lock in zpci_report_status() 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 Message-Id: <20260916-fix_zpci_report_status_pdev_leak-v3-2-61a2f980e71d@linux.ibm.com> References: <20260916-fix_zpci_report_status_pdev_leak-v3-0-61a2f980e71d@linux.ibm.com> In-Reply-To: <20260916-fix_zpci_report_status_pdev_leak-v3-0-61a2f980e71d@linux.ibm.com> To: Gerd Bayer , Matthew Rosato , Farhan Ali , Benjamin Block , Julian Ruess Cc: Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Sven Schnelle , Ramesh Errabolu , Tobias Schumacher , Halil Pasic , Peter Oberparleiter , Gerald Schaefer , Christian Borntraeger , Niklas Schnelle , linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3265; i=schnelle@linux.ibm.com; h=from:subject:message-id; bh=GC6gEaCPT0YK7vPMmtVnLI/Z4ceZjHbrLe4dhgkJ22M=; b=owGbwMvMwCX2Wz534YHOJ2GMp9WSGLJWbfLRW+GwvEdsXzA375dmoQunFD81Oyh28ldlb/sZ9 eDCrptmHaUsDGJcDLJiiiyLupz91hVMMd0T1N8BM4eVCWQIAxenAEwkcT7Db7bUtbmphTsZD808 uCZrZ+4sSbaHiWwT084adfEdqeVgDmdkeHDQlyt02ba3WttNVnqd65q6Krs2L+7Ff9eI/xe/Ht0 ewwgA X-Developer-Key: i=schnelle@linux.ibm.com; a=openpgp; fpr=9DB000B2D2752030A5F72DDCAFE43F15E8C26090 X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE2MDIwNCBTYWx0ZWRfX9hl9veQ4+hyL 9D4h1TwIHI9ko5fKXamubJfn/L9sD9r2i/WQ3irdbHRa/mfxY1oNb1qt+Jh6Iu3TB03arY3Reu6 2fLiMx0UorYK51i5hNLyy8xhd4IChUdScMdgNFr2OlmnUnU5XDBwvUppSLwONQZzTk4b0cE7DOa LEumZAMmMLTLrighQDFt9XE5agm/eKVxvTaSOueXxcU5R/Wr70KYPNS1nkzq2qDM5RU7m/NP+cK S7ueRMwdEOSu8NZocXU+M+kQEA1ZagjHKLYWtGfCGWLiVJc3jQwZTWaldqj1cxUStRjo77Zzsdt TQ7buzUI35nt/d+Sp5nAas6DfxAay47acWLVDKM3/yTAm0zNmlLs0qt0opqnlSFEabFeeNAK2Hq dolxB7M1CZFmemkFktjGx7qO/nMAOOKxIE5syXLTRZtDZmN4rNw+/XuwMBYZjisRACiuhTBAtrb K47IB3LhFCfCFgOjKMQ== X-Proofpoint-ORIG-GUID: kEvc0JHkY8D7AX48AtE7ARfqhvoOOKxS X-Proofpoint-GUID: kEvc0JHkY8D7AX48AtE7ARfqhvoOOKxS X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE2MDIwNCBTYWx0ZWRfX9EFuOavTvhWt 3ToOscTpgAuHGVbri7TlxGuSR5UhlHno1ydur/0B2EZkucSQup9vhVVwFxuI5JL9AwiziyqqeiT s2twL6+bVWWhg73U0y2nNjRJSRu9JWs= X-Authority-Analysis: v=2.4 cv=cY9HPXDM c=1 sm=1 tr=0 ts=6aaab25b cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=rUsYaACuVqKhdyhYbpEA:9 a=QEXdDO2ut3YA:10 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-16_02,2026-09-16_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 bulkscore=0 clxscore=1015 suspectscore=0 impostorscore=0 malwarescore=0 phishscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609160204 When pdev is non-NULL, zpci_report_status() accesses the device's driver. To get a consistent state matching the recovery, the device lock needs to be held. Do so by expanding the existing device lock critical section. The lock only needs to be held when the pdev is non-NULL, so extract the pdev-specific reporting into a helper function which also adds a lockdep assertion to detect calls without the device lock held. Cc: stable@vger.kernel.org Fixes: 4ec6054e7321 ("s390/pci: Report PCI error recovery results via SCLP") Signed-off-by: Niklas Schnelle Reviewed-by: Benjamin Block Reviewed-by: Farhan Ali --- arch/s390/pci/pci_event.c | 2 +- arch/s390/pci/pci_report.c | 21 +++++++++++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/arch/s390/pci/pci_event.c b/arch/s390/pci/pci_event.c index 3b4941b65840..ec93f34b6e19 100644 --- a/arch/s390/pci/pci_event.c +++ b/arch/s390/pci/pci_event.c @@ -297,8 +297,8 @@ static pci_ers_result_t zpci_event_attempt_error_recove= ry(struct pci_dev *pdev, driver->err_handler->resume(pdev); pci_uevent_ers(pdev, PCI_ERS_RESULT_RECOVERED); out_unlock: - device_unlock(&pdev->dev); zpci_report_status(zdev, pdev, "recovery", status_str); + device_unlock(&pdev->dev); =20 return ers_res; } diff --git a/arch/s390/pci/pci_report.c b/arch/s390/pci/pci_report.c index 867419779219..72ecabf7003c 100644 --- a/arch/s390/pci/pci_report.c +++ b/arch/s390/pci/pci_report.c @@ -87,6 +87,19 @@ static struct debug_view debug_log_view =3D { NULL }; =20 +static ssize_t zpci_report_pdev(struct pci_dev *pdev, char *buf, size_t si= ze) +{ + struct pci_driver *driver; + const char *start =3D buf; + char *end =3D buf + size; + + device_lock_assert(&pdev->dev); + buf +=3D scnprintf(buf, end - buf, "state: %s\n", zpci_state_str(pdev->er= ror_state)); + driver =3D to_pci_driver(pdev->dev.driver); + buf +=3D scnprintf(buf, end - buf, "driver: %s\n", (driver) ? driver->nam= e : "n/a"); + return buf - start; +} + /** * zpci_report_status - Report the status of operations on a PCI device * @zdev: The zPCI device for which to report status @@ -108,7 +121,6 @@ int zpci_report_status(struct zpci_dev *zdev, struct pc= i_dev *pdev, const char *operation, const char *status) { struct zpci_report_error *report; - struct pci_driver *driver =3D NULL; char *buf, *end; int ret; =20 @@ -122,16 +134,13 @@ int zpci_report_status(struct zpci_dev *zdev, struct = pci_dev *pdev, report =3D (void *)get_zeroed_page(GFP_KERNEL); if (!report) return -ENOMEM; - if (pdev) - driver =3D to_pci_driver(pdev->dev.driver); =20 buf =3D report->data.log_data; end =3D report->data.log_data + ZPCI_REPORT_DATA_SIZE; buf +=3D scnprintf(buf, end - buf, "report: %s\n", operation); buf +=3D scnprintf(buf, end - buf, "status: %s\n", status); - buf +=3D scnprintf(buf, end - buf, "state: %s\n", - (pdev) ? zpci_state_str(pdev->error_state) : "n/a"); - buf +=3D scnprintf(buf, end - buf, "driver: %s\n", (driver) ? driver->nam= e : "n/a"); + if (pdev) + buf +=3D zpci_report_pdev(pdev, buf, end - buf); ret =3D debug_dump(pci_debug_msg_id, &debug_log_view, buf, end - buf, tru= e); if (ret < 0) pr_err("Reading PCI debug messages failed with code %d\n", ret); --=20 2.53.0 From nobody Fri Sep 25 04:45:21 2026 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 04503394E91; Wed, 16 Sep 2026 15:14:39 +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=1789571681; cv=none; b=YF4WFu6dsebM55pEYMs0P9D+YjkwbsGn46Coy51psRPUVs0a8qelcbEO5/vD+N3usO8JwwxpwWu8ASU3JY7Ri1P/egXOv/u8xJg+B5phD8VBeQwO5W8Falb58p2h4yvCUqoBGoKcwbRvPc04DDfG5lNan0K6S9ZffaYLBHnU604= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789571681; c=relaxed/simple; bh=NdNjRxc+wRko4KIQOGeyMjd36ycXOwfSKQOfr1J68N0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BQIpwIgIiFjBe3GI+3BwxQ1W9RtNj++E8Ba7zy1xk4/Hms/p7S6A2/K8W50cviJnDuqXONhFuoOUk7XLRrse6PuzIpToEFJtf2K2124xkXWSukkDunOedv8KEdx+xytxjbnQCTwcGqHnXwqb+FdPjtKyTyl0Jq4LqcuRQU4eVio= 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=VE6G5clv; 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="VE6G5clv" Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68GEVsKW2136149; Wed, 16 Sep 2026 15:14:39 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=Ac93+U z1/X7RqIN4afeTPVET9P5fvYEcV9SgWbJbm14=; b=VE6G5clvPX2N5iBAOPeH9l HO1e7RiamtyNdUF5zr54xLjfDeAFT+WCtoJHpoQLNtTdlcFvCOf1fQhcmNxiqLVR +Zcfx2cYJYzCwdOMws/kdsKrkuqqTHDNsZGFbYswSViIBsk333FTOS7bvAvcBr8B fxWJUu50EcsWZVxD5KCVOADdhEEXQVwJIPP586IfuJ0iF/6mN3NMhX92ru1DreOQ QlQh69OxWq26GHSukjEhBLHenUIdQJ6QYezHiLCX6x89vFYgK0ibGunkMuTS70l3 eENv2aon7WQ3xfO4ge5VshSI2gvrcJRZEW8GXPg2qEBvBVp4QeYRB+QhROZk0lfg == 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 4gmxdqd9py-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 16 Sep 2026 15:14:38 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.11/8.18.1.11) with ESMTP id 68GEaAm41571749; Wed, 16 Sep 2026 15:14:38 GMT Received: from smtprelay04.wdc07v.mail.ibm.com ([172.16.1.71]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4gq03bxwr6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 16 Sep 2026 15:14:38 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (smtpav05.wdc07v.mail.ibm.com [10.39.53.232]) by smtprelay04.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68GFEain41157266 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 16 Sep 2026 15:14:36 GMT Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B6D4F5805D; Wed, 16 Sep 2026 15:14:36 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8C59758043; Wed, 16 Sep 2026 15:14:33 +0000 (GMT) Received: from [127.0.1.1] (unknown [9.87.85.9]) by smtpav05.wdc07v.mail.ibm.com (Postfix) with ESMTP; Wed, 16 Sep 2026 15:14:33 +0000 (GMT) From: Niklas Schnelle Date: Wed, 16 Sep 2026 17:14:12 +0200 Subject: [PATCH v3 3/4] s390/pci: Report SCLP status on error events when no pdev is associated 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 Message-Id: <20260916-fix_zpci_report_status_pdev_leak-v3-3-61a2f980e71d@linux.ibm.com> References: <20260916-fix_zpci_report_status_pdev_leak-v3-0-61a2f980e71d@linux.ibm.com> In-Reply-To: <20260916-fix_zpci_report_status_pdev_leak-v3-0-61a2f980e71d@linux.ibm.com> To: Gerd Bayer , Matthew Rosato , Farhan Ali , Benjamin Block , Julian Ruess Cc: Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Sven Schnelle , Ramesh Errabolu , Tobias Schumacher , Halil Pasic , Peter Oberparleiter , Gerald Schaefer , Christian Borntraeger , Niklas Schnelle , linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1195; i=schnelle@linux.ibm.com; h=from:subject:message-id; bh=NdNjRxc+wRko4KIQOGeyMjd36ycXOwfSKQOfr1J68N0=; b=owGbwMvMwCX2Wz534YHOJ2GMp9WSGLJWbfJtF4l/nMp8g3l/ZyDXpQeNfnzXLHxehs3r4+A1s D52s62yo5SFQYyLQVZMkWVRl7PfuoIppnuC+jtg5rAygQxh4OIUgIkouTH8j5zaJd8v/cckL798 xj3m/LsTPuefKvOIWhsrfFzCuZ69geF/yh2Xa5OPSp06+jF2k27K++aevjs3J7Edz2ryZuopWlP HBQA= X-Developer-Key: i=schnelle@linux.ibm.com; a=openpgp; fpr=9DB000B2D2752030A5F72DDCAFE43F15E8C26090 X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE2MDIwNCBTYWx0ZWRfX2D+xrM1PXhBO IGKYJsDlO+Q/wXkHpaq/k4XAbkQTolrgLmCsrtY11OxJot4R9N8rSHcT33ogEdGyJMTCsM7VgTW A+yCjNoMuBY0yYGwoNuJenU7jDm1fdvu8kzS4ZGK75BpbE2zE+OJQAzaLA4QxfE8iKftRFzHTTu AzJBx7IXL6MUtsvYjw0494qJVlaBbS6nic0LS2vlAkQ0EH29FYN3MZwtXN631PSvUp1mXJWa9EN ea818uQQaTIF+a66KikFJDi5rjVdy+0rOzpVeMwGpboujVGq/H3kHPYlxDCnolQzwwSbMDO67Qw /O8d+KJ8fGhHRn3coucBpdezkcpWbzPD0IZ8hHk/3D7NDObZiX3qbk8sfe/0IU4pW90iyzkNQNm yGgY/DTo2tL4K5UR2qTV1jbIOxJ+BkT445TmGB3CE1jXUBOXpEzc9/8ZBS/I3wEwAvOtwNTgPlX 7p2vEfnki7uCU4lz/MA== X-Proofpoint-GUID: 2NgFI-eY16_7vDVfGr_ppO91g7vY74e3 X-Authority-Analysis: v=2.4 cv=DobDa2/+ c=1 sm=1 tr=0 ts=6aaab25e cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=uAbxVGIbfxUO_5tXvNgY:22 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=d-oOgTxYaRR7rsuNLcEA:9 a=QEXdDO2ut3YA:10 X-Proofpoint-ORIG-GUID: 2NgFI-eY16_7vDVfGr_ppO91g7vY74e3 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE2MDIwNCBTYWx0ZWRfX7azMHUpW1tB7 wBpNHFVteDgjmXRl4e1ibubYpEMAIPKITiAcRaD3bd9NiFpWnhMUHNfcqSuhXG/Ioat4V/KZv/X drNdzFF/Cdj2Jbzoec8NB7z+rDPwzPM= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-16_02,2026-09-16_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 priorityscore=1501 suspectscore=0 impostorscore=0 spamscore=0 clxscore=1015 adultscore=0 bulkscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609160204 With commit 4ec6054e7321 ("s390/pci: Report PCI error recovery results via SCLP") SCLP reports are generated when recovery is performed in response to an error event. If such an error event arrives but no pdev is currently associated with the zdev, e.g. because it was removed or not yet probed, no report is generated. Fix this by generating a report specific to an error event for a zdev without an associated pdev. Cc: stable@vger.kernel.org Fixes: 4ec6054e7321 ("s390/pci: Report PCI error recovery results via SCLP") Signed-off-by: Niklas Schnelle Reviewed-by: Benjamin Block Reviewed-by: Farhan Ali --- arch/s390/pci/pci_event.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/s390/pci/pci_event.c b/arch/s390/pci/pci_event.c index ec93f34b6e19..7b538c6ae11b 100644 --- a/arch/s390/pci/pci_event.c +++ b/arch/s390/pci/pci_event.c @@ -361,8 +361,10 @@ static void __zpci_event_error(struct zpci_ccdf_err *c= cdf) =20 __zpci_event_print_error(pdev, ccdf); =20 - if (!pdev) + if (!pdev) { + zpci_report_status(zdev, NULL, "error event", "no pdev bound"); goto no_pdev; + } =20 switch (ccdf->pec) { case 0x002a: /* Error event concerns FMB */ --=20 2.53.0 From nobody Fri Sep 25 04:45:21 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7BD8F388880; Wed, 16 Sep 2026 15:14:43 +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=1789571684; cv=none; b=p9nwltfgwfnpiAkg/+7Ub1ROtQQcvhNsYLmn/vQ4idD854Z/XUFJBZW/zuvQQTSvhgxVshbYZq76EUQc16Ua4jB1pVazQNIsZQbm6Sa3a5B4R6wYsKnub0bnlzTM3mKHyLFbKuQnA9pb+5WnL1uXcg2cAHUPSFaSk36KKwl4gig= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789571684; c=relaxed/simple; bh=Lq/6OUOvjHVlGLDK+8BJrdYXAhZrDn36TsSaj+l/Ln4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ryj0fFmrYvxXDyotTMG4Kh0UDt8exs2oHvGAx7SmnLz00TCCwJR56XjuRmUWujyc+TydEH5jpRsrEFfqM7g0bFCf4oIJJO0hdXsV5wt/t8uzBqbmDj5wlYQiw8IhW0V2xrXPwaYA6NvDlGca0C7OaPBCZCkhgwqEH9c5YJzVLFA= 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=HiN5P5fc; 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="HiN5P5fc" Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68GEVtHd4047050; Wed, 16 Sep 2026 15:14:42 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=l6wq1Q N85BT9MEE+00dtKwkd7PGC+aUahqx6NHyxgw0=; b=HiN5P5fcOw1E3Efrf7K7e/ 5CUgi7FCEWETElD//EUNd+hbkLqeZqIP8RwRuw0ywIK11lqu8Y/nEJeuAu0SmNMF s9qeP/epzFRGiRKGTdy/+QF5joQJcGKMGmh89OGSr4Aad//WdnyacOEHSEINXteo 79Ynjpk8yCPJIpXp2eoAPAO0AXcq050pw86Kz1D6N9OBVdNz/b1XoXKYiX+LFZS1 ETCT8zrc32I0qADt+8WiWQcEB00FX9d5Z6pYkvFa6pAvJowZolVHu0UYwORrWngH v4W9kyBlIwD+T386tPJ6J76j8KXZ8b2foNjIS1HbEAg2UeyX8s9oMtLhegfk2PWg == 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 4gmxcv4wtu-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 16 Sep 2026 15:14:42 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.11/8.18.1.11) with ESMTP id 68GEaBjb2520780; Wed, 16 Sep 2026 15:14:41 GMT Received: from smtprelay02.dal12v.mail.ibm.com ([172.16.1.4]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4gpw6d7fvu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 16 Sep 2026 15:14:41 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (smtpav05.wdc07v.mail.ibm.com [10.39.53.232]) by smtprelay02.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 68GFEeeh47514006 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 16 Sep 2026 15:14:40 GMT Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 401D858053; Wed, 16 Sep 2026 15:14:40 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 1394258043; Wed, 16 Sep 2026 15:14:37 +0000 (GMT) Received: from [127.0.1.1] (unknown [9.87.85.9]) by smtpav05.wdc07v.mail.ibm.com (Postfix) with ESMTP; Wed, 16 Sep 2026 15:14:36 +0000 (GMT) From: Niklas Schnelle Date: Wed, 16 Sep 2026 17:14:13 +0200 Subject: [PATCH v3 4/4] s390/pci: Don't report recovery success on skipped recovery 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 Message-Id: <20260916-fix_zpci_report_status_pdev_leak-v3-4-61a2f980e71d@linux.ibm.com> References: <20260916-fix_zpci_report_status_pdev_leak-v3-0-61a2f980e71d@linux.ibm.com> In-Reply-To: <20260916-fix_zpci_report_status_pdev_leak-v3-0-61a2f980e71d@linux.ibm.com> To: Gerd Bayer , Matthew Rosato , Farhan Ali , Benjamin Block , Julian Ruess Cc: Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Sven Schnelle , Ramesh Errabolu , Tobias Schumacher , Halil Pasic , Peter Oberparleiter , Gerald Schaefer , Christian Borntraeger , Niklas Schnelle , linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1025; i=schnelle@linux.ibm.com; h=from:subject:message-id; bh=Lq/6OUOvjHVlGLDK+8BJrdYXAhZrDn36TsSaj+l/Ln4=; b=owGbwMvMwCX2Wz534YHOJ2GMp9WSGLJWbfILebcnMefb5MrwSd/k51o9vKZyKiv+4gvpt7fXr xE7fqVAu6OUhUGMi0FWTJFlUZez37qCKaZ7gvo7YOawMoEMYeDiFICJnL/ByDDj+MGFWtemm7In ignxynsd/vlDsL1w1aeX004c+fu8+UcII8PJBI/tl/h/MWTqRjH1Pim80drro9ymsUUu5PWEWfe q3/IBAA== X-Developer-Key: i=schnelle@linux.ibm.com; a=openpgp; fpr=9DB000B2D2752030A5F72DDCAFE43F15E8C26090 X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE2MDIwNCBTYWx0ZWRfX4wqn14IJaPVT b9j+wNoeOhTjkEz3npiw2KxqY+d+erOKhiVpOOjj+U7qdlnzZGS/pPPcBr1l/SQpYT4hgYGRiGO 0zlsF3VV7xDQQx3od2fLaPIoxxwX90A= X-Proofpoint-ORIG-GUID: Hfg60ZFSIllSIEwuTvE4aNay0M6sB9RJ X-Proofpoint-GUID: Hfg60ZFSIllSIEwuTvE4aNay0M6sB9RJ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE2MDIwNCBTYWx0ZWRfX7pjydJot00mX WKUx2uiHsV+HLIBUPfOROHnc3mgXynSTmEWFDupH56tXPy4dPHSjXhWKZeKrsJeUJncCA4LG5uk d02rXRsH2UJ1KkFSdtzEbP9PVLAW0FE+eSUnyoCHp4qnxfKSyC/iuKF6ASqTTILoVHHao7Yfc+K nQ3GLT6Rk0MpqQFPO63t6m+6M5u/2YMeZE0SnfRJq/r/EiF9rnCUJMNflHpphy/YfEVOwF8dW1E KhUDdFNTeqcP0kdqfd/9bnTGjjVwyKbGFJPeZkpHRaOqNeG/O7/zj44uAc8BYWvZe3cvNskhKqb sggww47M/k0UDbRCe7JbH+j15mVeI98J+siEjV+T/Sy754mUvIFQd3+5dq3VZIrqjdYzJeImxe1 82F4mn4w88A+L22yVq+IUIK1qfJIojPTw2/fkoI8mcxQFdfBtEhXjBzCpNWBI7eau0kRmS0IMM+ xEeO2H2eiEdAXu120bw== X-Authority-Analysis: v=2.4 cv=F+7C5ahN c=1 sm=1 tr=0 ts=6aaab262 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=RzCfie-kr_QcCd8fBx8p:22 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=p9OeIctiVzUaSuujbjoA:9 a=QEXdDO2ut3YA:10 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-16_02,2026-09-16_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 phishscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 bulkscore=0 spamscore=0 impostorscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609160204 When a PCI device is already in the permanent failure state, recovery is skipped, but the SCLP recovery report still shows success. Fix this by changing the status string to explicitly state that recovery was skipped due to permanent failure. Cc: stable@vger.kernel.org Fixes: 4ec6054e7321 ("s390/pci: Report PCI error recovery results via SCLP") Signed-off-by: Niklas Schnelle Reviewed-by: Benjamin Block Reviewed-by: Farhan Ali --- arch/s390/pci/pci_event.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/s390/pci/pci_event.c b/arch/s390/pci/pci_event.c index 7b538c6ae11b..d6af4015223e 100644 --- a/arch/s390/pci/pci_event.c +++ b/arch/s390/pci/pci_event.c @@ -226,6 +226,7 @@ static pci_ers_result_t zpci_event_attempt_error_recove= ry(struct pci_dev *pdev, device_lock(&pdev->dev); if (pdev->error_state =3D=3D pci_channel_io_perm_failure) { ers_res =3D PCI_ERS_RESULT_DISCONNECT; + status_str =3D "skipped (permanent failure)"; goto out_unlock; } pdev->error_state =3D pci_channel_io_frozen; --=20 2.53.0