From nobody Tue Mar 3 05:07:05 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 899AC37FC70; Mon, 2 Mar 2026 20:33:45 +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=1772483626; cv=none; b=Jpq9TFCl+IdITzLYc5yv4fa0U4HIlW1qxrUTNozIndd09+ZruFQRarWOsSQoFrkpyXsASUq2m2d4T8r+3spyRdxldMUxm7QHdDEZ09/Bp2EqTC1Rku17fdIshntdHDv6F8eo9WGnpzN/hgLXHbGtlODUeaDyTtXk6gdub6R1I7M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772483626; c=relaxed/simple; bh=JU2S/D1vIdNZRnF3thIXfdANBZsmsxh8AT3Bc52zZ5k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=s+v0/9vOW/Mbz0ImJSIPioA0vfDSTyGoXzvQrxWrqkr0G8T9gEmlOPnlrweG1b6Jkt917zp33nZK5Eugy7kQNBrK1oMSqanuhLgTZ+p0GDBC9D09sEG6zJOdaTWToNc0OtRqlnClQq0/HzH/Bu3OQAhgel0NLOaR4iv8ot2l2ko= 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=JmfFFh96; 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="JmfFFh96" 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 622AmrGc920876; Mon, 2 Mar 2026 20:33:40 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=/Q3cbR0hn2isfELGq liRAPHKU4vVJLMuvRD4mjbhUEM=; b=JmfFFh96XGLAOjuE3ZpVRhWlcaHlwnbZI IU9xhLaTdwFd3+2Se4guuAmOlij8ET+KDYzlkGMM2i09EfowNrQ+LN8yFY/B5YPx jr/on830tzlmKTXnqd84EdRCHsJ/M5X0wZPaacgqxwrnSNHkEviZAC2n4UhcK+vH 0HXO/zXre/BN8tfrZAiyLab3ddLS2Tpb4+H3Iyvuw2mn4UGwhES68fZAhvpTNbCD R81EK6Wp00HUFPIXofs35A7k6lvw2v+4/EAtAOi34UJMoLs0B7yGLpK/U4ICgZYF 3ZoTqRUhjkzn5leJIUamUS0BwCx+VFFqjUIGqCVPJCDyL1wnzR2Rw== Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4cksk3r5k8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 02 Mar 2026 20:33:40 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 622Htnip010284; Mon, 2 Mar 2026 20:33:39 GMT Received: from smtprelay02.dal12v.mail.ibm.com ([172.16.1.4]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4cmc6jyh6x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 02 Mar 2026 20:33:39 +0000 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 622KXcPk30343738 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 2 Mar 2026 20:33:38 GMT Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 59A8858043; Mon, 2 Mar 2026 20:33:38 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 1339158059; Mon, 2 Mar 2026 20:33:37 +0000 (GMT) Received: from IBM-D32RQW3.ibm.com (unknown [9.61.253.18]) by smtpav05.wdc07v.mail.ibm.com (Postfix) with ESMTP; Mon, 2 Mar 2026 20:33:36 +0000 (GMT) From: Farhan Ali To: linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org Cc: helgaas@kernel.org, lukas@wunner.de, alex@shazbot.org, clg@redhat.com, stable@vger.kernel.org, kbusch@kernel.org, alifm@linux.ibm.com, schnelle@linux.ibm.com, mjrosato@linux.ibm.com, Julian Ruess Subject: [PATCH v10 8/9] vfio: Add a reset_done callback for vfio-pci driver Date: Mon, 2 Mar 2026 12:33:23 -0800 Message-ID: <20260302203325.3826-9-alifm@linux.ibm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260302203325.3826-1-alifm@linux.ibm.com> References: <20260302203325.3826-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: g3VFzLBXanz8l-fxCmcBgZqWW7apH-xb X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzAyMDE1NSBTYWx0ZWRfX/ejZGmqOxSDM p3DR+gQT8bmsoWd9OFu1VE6gJH9ZFNOUwx6nzxfitFDbkv852gLZlvZMYDi0+H1ozuIHltPNrO5 ibPrAwsWLx1E/4rEdG/6F9U71YwQWSws7nbU5R/DHoxhuntrXe/3pCUx3hl+trMBoqz7mEo/yEh 1xAgnQWa37z3bWv9L6cNuHxHScmyO2bPaUSYsVbQd8RezE7qjneG0nRJsfo31HbLDqRQKbDn2bB m8JneFrXlVrc+aqP51O4099YEziPbYKXTiM8/q3QEZgHAQY4gSPMWhB0m9x5uQ15AYsn3x0n7eo QZiVbenZ4nUUhKppqynOSH2b5b6h58Yxs5+6y4Lj3J2KdLB17ib7Y2junUxwRfPlWmzxorSjcTk oQuEcAxeipl/+U/kfr1hZLrb5kJDxmE5WQd8EjMxvyBWe4l9rE5gNcCu7W4GGxfy7Sc/qJo3A8w W35AgAr3J+snWmTcQuQ== X-Authority-Analysis: v=2.4 cv=csCWUl4i c=1 sm=1 tr=0 ts=69a5f424 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=Y2IxJ9c9Rs8Kov3niI8_:22 a=VnNF1IyMAAAA:8 a=hcTHx3Z5Akp3fEzgVBYA:9 X-Proofpoint-GUID: g3VFzLBXanz8l-fxCmcBgZqWW7apH-xb X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-02_05,2026-03-02_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 suspectscore=0 malwarescore=0 adultscore=0 clxscore=1015 bulkscore=0 phishscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603020155 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. Reviewed-by: Julian Ruess Reviewed-by: Niklas Schnelle 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 bbdb625e35ef..f1bd1266b88f 100644 --- a/drivers/vfio/pci/vfio_pci_core.c +++ b/drivers/vfio/pci/vfio_pci_core.c @@ -2257,6 +2257,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) { @@ -2321,6 +2332,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