{"id":2233166,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2233166/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260505200510.2954-7-alifm@linux.ibm.com/","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/1.2/projects/28/?format=json","name":"Linux PCI development","link_name":"linux-pci","list_id":"linux-pci.vger.kernel.org","list_email":"linux-pci@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260505200510.2954-7-alifm@linux.ibm.com>","list_archive_url":null,"date":"2026-05-05T20:05:09","name":"[v15,6/7] vfio/pci: Add a reset_done callback for vfio-pci driver","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"7315297e95d4cb932fd136822eb3210b6072f91e","submitter":{"id":73785,"url":"http://patchwork.ozlabs.org/api/1.2/people/73785/?format=json","name":"Farhan Ali","email":"alifm@linux.ibm.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260505200510.2954-7-alifm@linux.ibm.com/mbox/","series":[{"id":502892,"url":"http://patchwork.ozlabs.org/api/1.2/series/502892/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/list/?series=502892","date":"2026-05-05T20:05:06","name":"Error recovery for vfio-pci devices on s390x","version":15,"mbox":"http://patchwork.ozlabs.org/series/502892/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2233166/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2233166/checks/","tags":{},"related":[],"headers":{"Return-Path":"\n <linux-pci+bounces-53788-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256\n header.s=pp1 header.b=s+K+Mxcc;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c09:e001:a7::12fc:5321; helo=sto.lore.kernel.org;\n envelope-from=linux-pci+bounces-53788-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com\n header.b=\"s+K+Mxcc\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=148.163.158.5","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linux.ibm.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=linux.ibm.com"],"Received":["from sto.lore.kernel.org (sto.lore.kernel.org\n [IPv6:2600:3c09:e001:a7::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g98hB33htz1yJx\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 06 May 2026 06:07:54 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sto.lore.kernel.org (Postfix) with ESMTP id 4E2153024D3B\n\tfor <incoming@patchwork.ozlabs.org>; Tue,  5 May 2026 20:06:26 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 120002DCF67;\n\tTue,  5 May 2026 20:05:25 +0000 (UTC)","from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com\n [148.163.158.5])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 72BC23E3C4A;\n\tTue,  5 May 2026 20:05:22 +0000 (UTC)","from pps.filterd (m0353725.ppops.net [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 645DdqgS2469637;\n\tTue, 5 May 2026 20:05:18 GMT","from ppma22.wdc07v.mail.ibm.com\n (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92])\n\tby mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4dw9xxn3ac-1\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n\tTue, 05 May 2026 20:05:18 +0000 (GMT)","from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1])\n\tby ppma22.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id\n 645JsgWv013147;\n\tTue, 5 May 2026 20:05:17 GMT","from smtprelay02.dal12v.mail.ibm.com ([172.16.1.4])\n\tby ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4dwuyw3bmw-1\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n\tTue, 05 May 2026 20:05:17 +0000 (GMT)","from smtpav06.dal12v.mail.ibm.com (smtpav06.dal12v.mail.ibm.com\n [10.241.53.105])\n\tby smtprelay02.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id\n 645K5GN13998346\n\t(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n\tTue, 5 May 2026 20:05:16 GMT","from smtpav06.dal12v.mail.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 51C3D5805D;\n\tTue,  5 May 2026 20:05:16 +0000 (GMT)","from smtpav06.dal12v.mail.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 9872658060;\n\tTue,  5 May 2026 20:05:15 +0000 (GMT)","from IBM-D32RQW3.ibm.com (unknown [9.61.242.219])\n\tby smtpav06.dal12v.mail.ibm.com (Postfix) with ESMTP;\n\tTue,  5 May 2026 20:05:15 +0000 (GMT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1778011525; cv=none;\n b=L9V/z1ZPVJebQYbqEZow/5V7XIbCmiYk+MYIkiNNyF/zt/lUMtqksyqnNhodst5ctyeFv283LkGgQtTHeTJBAGiRrvRhKsU6G5ZzBTqgLA75ATWeJrL1q7cTX8KJob97XAhY9wJdbSMi5140IKnK+D/IKAIGLT3nUWzhCVzL2Hk=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1778011525; c=relaxed/simple;\n\tbh=P42YvZxGI5G2cnEEMsTCKfL+1dhOLbI9ogZtc8OaZ64=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=LJXYpdVR7mt49YQ2BcUDEVKVQWNLaHReCOuAhvoKNSW23LhO+utLES3gl+0D8UwzlkmmnETnmxT2m1kY3fMaIjpi+V7BswAgO3mZ/bsssMfweFIDmPkGKb199pRCZYB9v1+aOsbBgezBB7t0mk7jZDxqXKNgkJqXwqFRBqXzPzY=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linux.ibm.com;\n spf=pass smtp.mailfrom=linux.ibm.com;\n dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com\n header.b=s+K+Mxcc; arc=none smtp.client-ip=148.163.158.5","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc\n\t:content-transfer-encoding:date:from:in-reply-to:message-id\n\t:mime-version:references:subject:to; s=pp1; bh=HZIwTW1oOFUsiUCSp\n\tEO91NJ3o0zlBjIUbldT7Oqbc5g=; b=s+K+Mxcc3fY4Tvkd0t6IUqTEpR9tfCHbE\n\tGsjFOroXF7Q6LtXkfGDt0p+VKExNwlItZ0tnQ6K6e1voeXuKwsbwtmdOWTR5XxSB\n\tMXOA3VwLLzWn8gVjChScOOmivCP60ziuYdwa6mZU1uHaYYZ8JeiWbuvOc0toezAT\n\tibBJwAlLU4T2S1SvHd0KZtSAUwoiaGTCq0tlkAqrBhjaJL48nP60q+AUIS0DF2n/\n\tirXEbqunKYzZgDxpf6cIQ16J1rIPa1zTrU4SPq4R3+dr6GZOIylQLP6nh4CzOZvL\n\tZMu6wKuoXfBzwKmTjr3KaRsTvY2f8AddlnpFbs2o1UKLL5pe4W0dA==","From":"Farhan Ali <alifm@linux.ibm.com>","To":"linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org,\n        linux-pci@vger.kernel.org","Cc":"helgaas@kernel.org, alex@shazbot.org, alifm@linux.ibm.com,\n        schnelle@linux.ibm.com, mjrosato@linux.ibm.com,\n        Julian Ruess <julianr@linux.ibm.com>","Subject":"[PATCH v15 6/7] vfio/pci: Add a reset_done callback for vfio-pci\n driver","Date":"Tue,  5 May 2026 13:05:09 -0700","Message-ID":"<20260505200510.2954-7-alifm@linux.ibm.com>","X-Mailer":"git-send-email 2.43.0","In-Reply-To":"<20260505200510.2954-1-alifm@linux.ibm.com>","References":"<20260505200510.2954-1-alifm@linux.ibm.com>","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-TM-AS-GCONF":"00","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNTA1MDE5MSBTYWx0ZWRfX3mX120J6Q3xL\n Dfi5+s+Jzk12KZNfHRaNu9UO4ybgZDQKtiZSX3ghDeiUOL3a7fneCO8Xy4mTmbQrt5nfydlg9jm\n LzMwam5y8xwPjEt7OBtxxW254e+y3wxUYusoQSX5C4S7W//RPiDl9wYeCfR0KCTvzbfJHXt3OCF\n 6YQ3NCYjLDv2GgdhJigET8T0owE5JDZkPYFUoDqX2yA+hvYXK3Nqq6X+HvT/QnSNG85caskQilg\n GDV4QfemHX+YswlGnPZAcSSegO1ZNq0JPm5Bszdyt33hdGEJ+cDmYpT8jMYTPORqiZmqy95AuMB\n NoWnbE0WZ8Gmp378kkADu3v39X0eN50wYCogfrmXrp5xUiSiKMqB5i3ar0StfeNdzUVemh7x95L\n ZvDy0r4VSpZLhoDhBhTqg/AXcJqSCcTWausUrvNHcoP9lnPik7ROSRPq/dCyWMrlwgzshdEmXIP\n WYHCvABTYtq7loXybMQ==","X-Proofpoint-ORIG-GUID":"mXvRgWpr4PJ_MctRSkRuhMhCef3wRSFk","X-Proofpoint-GUID":"mXvRgWpr4PJ_MctRSkRuhMhCef3wRSFk","X-Authority-Analysis":"v=2.4 cv=ctWrVV4i c=1 sm=1 tr=0 ts=69fa4d7e cx=c_pps\n a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17\n a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22\n a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=r1p2_3pzAAAA:8\n a=hcTHx3Z5Akp3fEzgVBYA:9 a=r_pkcD-q9-ctt7trBg_g:22","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-05-05_02,2026-04-30_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n priorityscore=1501 lowpriorityscore=0 adultscore=0 clxscore=1015\n suspectscore=0 impostorscore=0 spamscore=0 malwarescore=0 phishscore=0\n bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound\n adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000\n definitions=main-2605050191"},"content":"On error recovery for a PCI device bound to vfio-pci driver, we want to\nrecover the state of the device to its last known saved state. The callback\nrestores the state of the device to its initial saved state.\n\nReviewed-by: Julian Ruess <julianr@linux.ibm.com>\nReviewed-by: Niklas Schnelle <schnelle@linux.ibm.com>\nAcked-by: Alex Williamson <alex@shazbot.org>\nReviewed-by: Matthew Rosato <mjrosato@linux.ibm.com>\nSigned-off-by: Farhan Ali <alifm@linux.ibm.com>\n---\n drivers/vfio/pci/vfio_pci_core.c | 12 ++++++++++++\n 1 file changed, 12 insertions(+)","diff":"diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c\nindex f47a49ca67fa..6358b59fab2b 100644\n--- a/drivers/vfio/pci/vfio_pci_core.c\n+++ b/drivers/vfio/pci/vfio_pci_core.c\n@@ -2255,6 +2255,17 @@ pci_ers_result_t vfio_pci_core_aer_err_detected(struct pci_dev *pdev,\n }\n EXPORT_SYMBOL_GPL(vfio_pci_core_aer_err_detected);\n \n+static void vfio_pci_core_aer_reset_done(struct pci_dev *pdev)\n+{\n+\tstruct vfio_pci_core_device *vdev = dev_get_drvdata(&pdev->dev);\n+\n+\tif (!vdev->pci_saved_state)\n+\t\treturn;\n+\n+\tpci_load_saved_state(pdev, vdev->pci_saved_state);\n+\tpci_restore_state(pdev);\n+}\n+\n int vfio_pci_core_sriov_configure(struct vfio_pci_core_device *vdev,\n \t\t\t\t  int nr_virtfn)\n {\n@@ -2319,6 +2330,7 @@ EXPORT_SYMBOL_GPL(vfio_pci_core_sriov_configure);\n \n const struct pci_error_handlers vfio_pci_core_err_handlers = {\n \t.error_detected = vfio_pci_core_aer_err_detected,\n+\t.reset_done = vfio_pci_core_aer_reset_done,\n };\n EXPORT_SYMBOL_GPL(vfio_pci_core_err_handlers);\n \n","prefixes":["v15","6/7"]}