From nobody Sun Feb 8 15:57:27 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 BA9E63148BE; Thu, 13 Nov 2025 18:35:24 +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=1763058927; cv=none; b=lVbKb1kfKzuhTR793TQGx/5hWHXxub8hUJufJJQQhCVnEf3jz5xApn4gFlrBA+u66+eU7PVTo3ZcIYyv5E5Bx1FF9IJ2DgUDNQ93Kv1/BD1zPmDX7vptzmKya2NYEgWJzs/EpuQPlgkBOc+R8pchg+2hCv6dEzP3Zsb8+yS8pZs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763058927; c=relaxed/simple; bh=ytFXbNEKbWNWIa4e99DqMpdEgtgPube/J3VaS5HzAEQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HSioK9+BQY5OxmQ3bEJ80C5DPlmKO453qQTBGomj2NlrE6DyMQ5jQonuzmuuBEcZgU/jJQccJRrqxQnd+WrGzMq5D0aeiEsJsXVkahtfPYSJriTfRFz2HyIHXlGUUcW7fzVwkuaCoR89RQBt7v4ewIR4Gs/vImJLayYZsu48i5E= 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=dHmaj5e2; 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="dHmaj5e2" 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 5ADGAur2004920; Thu, 13 Nov 2025 18:35:19 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=dHmaj5e2a6iOW2rERYMPgqZT9XHpE8c4C DFscKXvJgohiVyMMX40/TvU+1wHgmq+//YpSLkPGkZ0eNrEZmZ18R5khE1y2L6ER WQxgNrx3K5VpGHZJjOWw8RUFCYz2QCWWMKVR6n9a1JbOH+7MCkmLAd/oZ/O89c7a sE649xEUFBZ8z3yRYQ5PbbiUKBOWEkNYqqlFjmU1oFuURSe253hwo0bf/yQXfZmT vSN71kkSLjstEMypSe+b97QdyPA4UjzO04EBqs3t6m5EowwVmTRJmV8D1geSSRfZ HVVuYFnfm/zYH/yVGJnONdifmY9IfV88r5ASx16ueMa28rh7hw/IA== 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 4a9wgx7x4u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Nov 2025 18:35:18 +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 5ADGCA4O014762; Thu, 13 Nov 2025 18:35:18 GMT Received: from smtprelay03.wdc07v.mail.ibm.com ([172.16.1.70]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4aahpkfdvr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 13 Nov 2025 18:35:18 +0000 Received: from smtpav05.wdc07v.mail.ibm.com (smtpav05.wdc07v.mail.ibm.com [10.39.53.232]) by smtprelay03.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 5ADIZ3bx6619844 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 13 Nov 2025 18:35:03 GMT Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C98865805F; Thu, 13 Nov 2025 18:35:16 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A461958053; Thu, 13 Nov 2025 18:35:15 +0000 (GMT) Received: from IBM-D32RQW3.ibm.com (unknown [9.61.243.9]) by smtpav05.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 13 Nov 2025 18:35:15 +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, alifm@linux.ibm.com, schnelle@linux.ibm.com, mjrosato@linux.ibm.com Subject: [PATCH v5 8/9] vfio: Add a reset_done callback for vfio-pci driver Date: Thu, 13 Nov 2025 10:35:01 -0800 Message-ID: <20251113183502.2388-9-alifm@linux.ibm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251113183502.2388-1-alifm@linux.ibm.com> References: <20251113183502.2388-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-GUID: nf7J1ARWa4ZJPks5_7-QpjJDwqExLm5G X-Proofpoint-ORIG-GUID: nf7J1ARWa4ZJPks5_7-QpjJDwqExLm5G X-Authority-Analysis: v=2.4 cv=VMPQXtPX c=1 sm=1 tr=0 ts=691624e6 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VnNF1IyMAAAA:8 a=hcTHx3Z5Akp3fEzgVBYA:9 a=cPQSjfK2_nFv0Q5t_7PE:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTA4MDAyMiBTYWx0ZWRfX4AWQPgF6jkdM oGLZUZjsIU6Sa4rpQ0MQZuQ1CCVGHtlAi0p8bEDq7STFc7yvxNaZ5VaeIISQWwMwIqjIXf2ml8K yvc4QuwyCDblqMxsbFZlCX1jjvIt+6RmhtpvIWzCgp612b4YcclFL29VtrxYoms3OPd/fiaCsEc 0WMZjusiJ1qxZ/2e2vfnurY3Q1Aq/xrpPoZtA4ka3ba/r0hw1Z+loTKfb/zdIJkr7j4qVBb7QSs 3hl/IwWXTZSYp2tDvs/yztrsgSKn9YnLpwqwBioPTu0H0IJxJ8Dmg8KKusSQv+1sA1wctj/6vio vWEWFODdBIXOOnYn4/1Nwmjtl6PaF4Mod3WoVRi/EYrrluV11JWlJGqYAD7tyg5NtsdnmA87xTp 1v5DjPD+Ve/YiqqlC+AEMzUjVlz2lQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-13_03,2025-11-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 clxscore=1015 phishscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2511080022 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