From nobody Thu Oct 2 02:12:33 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 AD17A31B800; Wed, 24 Sep 2025 17:16:47 +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=1758734209; cv=none; b=tAr01h9+kmCywlxlW6pcHHr/QkxGH70Pu416gftKacc9Y546scMsfWw6CjTlA6Tji2Gtuthtar7mp8TNQVkfJzVfr8oEPsOqw63eDuphPAXgFg6s5YdRyXn5OkRtUiuemAYeuhPQyLGImsEod/HRaDV02xR8n7oBPZEZokiP/u8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758734209; c=relaxed/simple; bh=ytFXbNEKbWNWIa4e99DqMpdEgtgPube/J3VaS5HzAEQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JXP5Iho8F9oUp7PC3YxO1OxQqVAvSBKFS40b2YhiPme2Vywtp2fKJ5Satr8q2coGdTQ4gTYSoIZUdcqGOf5RGjcmfuYUZ9RtCe1yljwMA+dLUdvQHB5xZF0VopIpZSBzGsBJjHQScumUuT/fY2YT1mgDenh+lMGO5iJVczw2urQ= 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=JHKdfkI8; 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="JHKdfkI8" 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 58OCha1U028697; Wed, 24 Sep 2025 17:16:43 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=wJWMYHMfvbzU5BQsW YZErSvZaRLa/7xMVP6aVFziDXk=; b=JHKdfkI8gfLkmGRl0rsSiZasPB149HgbB 4JkjLG0GuScQF0pGeHm/Yudu/6Oh7myyOQ7Sfdsj5FX9VRH8BzKEuSPKHn5JPL/P DGxfICTjwBd9I7o83zSnoAnZFpzdLvngEvwjFx6sDf1Wzr4iDJYH8PEYmBc8Nx/z GuXXk8+gTiczT366Zus2wC/VxBIxotC6EA4jrdulNI+ADMIv4JPtT65pqhpi9uUR 2FPjkxtqJ1DeTLxyZ2RxW3f/8MLSyIJKovYmYPmXmG8f7TPOG47OreUvgQpJyS+1 brCz6vH8CBokeLZ2ZrS7rxuWOnJw8QDe4AM6usSGEoi53pMtMaJhQ== 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 499ksc11pq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 24 Sep 2025 17:16:43 +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 58OGqNCo031129; Wed, 24 Sep 2025 17:16:42 GMT Received: from smtprelay06.wdc07v.mail.ibm.com ([172.16.1.73]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 49b9vdar41-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 24 Sep 2025 17:16:42 +0000 Received: from smtpav03.dal12v.mail.ibm.com (smtpav03.dal12v.mail.ibm.com [10.241.53.102]) by smtprelay06.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 58OHGeBf12845750 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 24 Sep 2025 17:16:41 GMT Received: from smtpav03.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id AB0F258061; Wed, 24 Sep 2025 17:16:40 +0000 (GMT) Received: from smtpav03.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id F0E845803F; Wed, 24 Sep 2025 17:16:39 +0000 (GMT) Received: from IBM-D32RQW3.ibm.com (unknown [9.61.252.148]) by smtpav03.dal12v.mail.ibm.com (Postfix) with ESMTP; Wed, 24 Sep 2025 17:16:39 +0000 (GMT) From: Farhan Ali To: linux-s390@vger.kernel.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org Cc: alex.williamson@redhat.com, helgaas@kernel.org, clg@redhat.com, alifm@linux.ibm.com, schnelle@linux.ibm.com, mjrosato@linux.ibm.com Subject: [PATCH v4 09/10] vfio: Add a reset_done callback for vfio-pci driver Date: Wed, 24 Sep 2025 10:16:27 -0700 Message-ID: <20250924171628.826-10-alifm@linux.ibm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924171628.826-1-alifm@linux.ibm.com> References: <20250924171628.826-1-alifm@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: 6cl494nTIHO2U0SAHq_P21FWyZhFF8cJ X-Proofpoint-GUID: 6cl494nTIHO2U0SAHq_P21FWyZhFF8cJ X-Authority-Analysis: v=2.4 cv=SdH3duRu c=1 sm=1 tr=0 ts=68d4277b cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=yJojWOMRYYMA:10 a=VnNF1IyMAAAA:8 a=hcTHx3Z5Akp3fEzgVBYA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTIwMDAyMCBTYWx0ZWRfX4Ul4mXF3jdFd s67xrGyNw/2EDwiOV3id+g38FWnr82WZVQmiCJzJr8xPGXSBqSbrAxQOZ/bPEYaPxr/WvLViD4R i8zuhdEI7VLSZvqEJTS4JMGisUwRW/PubZKGs1/dq63Uj+Z/kNXStKb5zZV1WUqbtgC+L5MC6PB B+4ryQWI78oSDZYLgPE9wdEmOOmdBRgWbJxi0pEX2UjKwRQQLiysoG8v+Km1gOEx8+zbqTHMf4n SneDY1ffIvNcDUQaXOiQX3h2aqJ7FLuNKfSSMzjny2YYKr6oBhy4JSRenChz/srm/sv9P2T74Ry se7TWWIYG7rmM77cW4OaFlBKbHnXo1n5vg2d3MO2Idfpcy925ETfXCtwsT6xBHsOFf7hojEXqq+ Bug4JWw5 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-24_04,2025-09-24_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 phishscore=0 spamscore=0 bulkscore=0 priorityscore=1501 clxscore=1015 adultscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509200020 Content-Type: text/plain; charset="utf-8" On error recovery for a PCI device bound to vfio-pci driver, we want to recover the state of the device to its last known saved state. The callback restores the state of the device to its initial saved state. Signed-off-by: Farhan Ali --- drivers/vfio/pci/vfio_pci_core.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_c= ore.c index 378adb3226db..f2fcb81b3e69 100644 --- a/drivers/vfio/pci/vfio_pci_core.c +++ b/drivers/vfio/pci/vfio_pci_core.c @@ -2241,6 +2241,17 @@ pci_ers_result_t vfio_pci_core_aer_err_detected(stru= ct pci_dev *pdev, } EXPORT_SYMBOL_GPL(vfio_pci_core_aer_err_detected); =20 +static void vfio_pci_core_aer_reset_done(struct pci_dev *pdev) +{ + struct vfio_pci_core_device *vdev =3D dev_get_drvdata(&pdev->dev); + + if (!vdev->pci_saved_state) + return; + + pci_load_saved_state(pdev, vdev->pci_saved_state); + pci_restore_state(pdev); +} + int vfio_pci_core_sriov_configure(struct vfio_pci_core_device *vdev, int nr_virtfn) { @@ -2305,6 +2316,7 @@ EXPORT_SYMBOL_GPL(vfio_pci_core_sriov_configure); =20 const struct pci_error_handlers vfio_pci_core_err_handlers =3D { .error_detected =3D vfio_pci_core_aer_err_detected, + .reset_done =3D vfio_pci_core_aer_reset_done, }; EXPORT_SYMBOL_GPL(vfio_pci_core_err_handlers); =20 --=20 2.43.0