Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2217836/?format=api
{ "id": 2217836, "url": "http://patchwork.ozlabs.org/api/patches/2217836/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260330174011.1161-3-alifm@linux.ibm.com/", "project": { "id": 28, "url": "http://patchwork.ozlabs.org/api/projects/28/?format=api", "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": "<20260330174011.1161-3-alifm@linux.ibm.com>", "list_archive_url": null, "date": "2026-03-30T17:40:06", "name": "[v12,2/7] PCI: Avoid saving config space state if inaccessible", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "dd417dd477b85e14a6e298c0a47a81afb4d136c9", "submitter": { "id": 73785, "url": "http://patchwork.ozlabs.org/api/people/73785/?format=api", "name": "Farhan Ali", "email": "alifm@linux.ibm.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260330174011.1161-3-alifm@linux.ibm.com/mbox/", "series": [ { "id": 498071, "url": "http://patchwork.ozlabs.org/api/series/498071/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=498071", "date": "2026-03-30T17:40:08", "name": "Error recovery for vfio-pci devices on s390x", "version": 12, "mbox": "http://patchwork.ozlabs.org/series/498071/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2217836/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2217836/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <linux-pci+bounces-51482-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=ppDcMwrS;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-51482-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=\"ppDcMwrS\"", "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=148.163.156.1", "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 sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\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 4fkz9C1V69z1xrn\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 31 Mar 2026 04:42:39 +1100 (AEDT)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 8DA4D305BAA0\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 30 Mar 2026 17:40:28 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id B244C3DDDC7;\n\tMon, 30 Mar 2026 17:40:26 +0000 (UTC)", "from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com\n [148.163.156.1])\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 638EF38D688;\n\tMon, 30 Mar 2026 17:40:25 +0000 (UTC)", "from pps.filterd (m0353729.ppops.net [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 62UHOw6Q780846;\n\tMon, 30 Mar 2026 17:40:19 GMT", "from ppma12.dal12v.mail.ibm.com\n (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220])\n\tby mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4d66nnfyaq-1\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n\tMon, 30 Mar 2026 17:40:18 +0000 (GMT)", "from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1])\n\tby ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id\n 62UDsFns021665;\n\tMon, 30 Mar 2026 17:40:17 GMT", "from smtprelay05.wdc07v.mail.ibm.com ([172.16.1.72])\n\tby ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4d6sase0vs-1\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n\tMon, 30 Mar 2026 17:40:17 +0000", "from smtpav04.dal12v.mail.ibm.com (smtpav04.dal12v.mail.ibm.com\n [10.241.53.103])\n\tby smtprelay05.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id\n 62UHeGWn44761472\n\t(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n\tMon, 30 Mar 2026 17:40:16 GMT", "from smtpav04.dal12v.mail.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id DFB345805A;\n\tMon, 30 Mar 2026 17:40:15 +0000 (GMT)", "from smtpav04.dal12v.mail.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 0CCB558052;\n\tMon, 30 Mar 2026 17:40:15 +0000 (GMT)", "from IBM-D32RQW3.ibm.com (unknown [9.61.243.214])\n\tby smtpav04.dal12v.mail.ibm.com (Postfix) with ESMTP;\n\tMon, 30 Mar 2026 17:40:14 +0000 (GMT)" ], "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774892426; cv=none;\n b=Wg/nLlpabEptLs5zaUj0637Nw5M8WznGRgkzKAAXeZPjAZtE0P+qog0H9Iu+G5gFtRT6/cgRPOcYynReImdOMst4TrMIC7BDJcjBrYlS8m4zcfpX41mVsBPUVmQjnrjIoYUmuhODVr1Vu9Tkl/aONFnyRiu5PxC/wEIMD5VWNHo=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774892426; c=relaxed/simple;\n\tbh=mmhhEmNgf0L6OutmX2iSilVBQzGt179alZvuZKoJ+h8=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=s+VHxCrrtq9U4ImybT2evZ+546b64O7VkwqmrxMe7jE5VBCvZlO7luHF7YKv2AbBJLTRF18Xrv+Io/mbNTzzzgmC3inajob9DRYo3Cr1HovBliDpYzWULjp3hpZ8FEIZ8t4/3ZqTnbHfHfgIDInju7cS0U030blODYwJt3o1lmA=", "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=ppDcMwrS; arc=none smtp.client-ip=148.163.156.1", "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=9r3GMtRRVN9NDnxi+\n\tyXa+BzqmgUun9/32ps74J+SGc4=; b=ppDcMwrSvJ/NF10er68PeQeX9hNrbHbe9\n\trK0tXr5ZWS2zmBqfoWsFt6gE5HwGLkL3gqy6MpMD2GxnontM1MwmDVITfyHRx05H\n\tUVT6qLuf/hJMhIO38romctqGWHp0+dVlkwQ+cfoRqtbSpDlBolV1r70azt6ci/kH\n\tK6N/PiTkGpX/zMbyIOYkjh8iMTFRI7Lk710kC4rMd98ecCpA4Ehx0x9acGjyWeXi\n\tmbtbqxGOJCfA6W9eyTwRBg9H7tFyyvUSBn90JOhs0GKnZSd5wSV9YXkD6gulJ66r\n\tec/CzTWpu8F604nHRx2FHKPTlxmbiVMpf1YmvFwwzHm4t/6fW+lMA==", "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, lukas@wunner.de, alex@shazbot.org, clg@redhat.com,\n kbusch@kernel.org, alifm@linux.ibm.com, schnelle@linux.ibm.com,\n mjrosato@linux.ibm.com, Bjorn Helgaas <bhelgaas@google.com>", "Subject": "[PATCH v12 2/7] PCI: Avoid saving config space state if inaccessible", "Date": "Mon, 30 Mar 2026 10:40:06 -0700", "Message-ID": "<20260330174011.1161-3-alifm@linux.ibm.com>", "X-Mailer": "git-send-email 2.43.0", "In-Reply-To": "<20260330174011.1161-1-alifm@linux.ibm.com>", "References": "<20260330174011.1161-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-Reinject": "loops=2 maxloops=12", "X-Proofpoint-GUID": "1nvvEz1FMKTcC96MiRiKntJPf_JoAhIg", "X-Authority-Analysis": "v=2.4 cv=KslAGGWN c=1 sm=1 tr=0 ts=69cab583 cx=c_pps\n a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17\n a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22\n a=uAbxVGIbfxUO_5tXvNgY:22 a=VnNF1IyMAAAA:8 a=1XWaLZrsAAAA:8\n a=qS04rNcGil1I7-YeviAA:9", "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwMzMwMDE0MSBTYWx0ZWRfX2LoiLtIfYQRd\n 8ctAvhavEKReXWvNAS9GV/VWgS7kJJ6cmyfYSQHp58mJvIGX+40+GTO1j41yVTIXFqsjzyoN8nA\n QKAujNnX4OiSuAHYbLY2UJDuHqJBMp/k74YSQcfnUxFHaaFpMxC9ZZb1iWaYe/lJqI3sIxWG68s\n U/faDWnS8JPfJ5hwL2gqrPsJveYM9tPV8cs/8tX4N8fPNq4sbFb+qXnHU6oviWOd+Qu50qyxGJD\n /7qwg/0xLYfW79WWxvfvgcjphzizU7jGaKf5HV1HYjnQuD5W7pSXhww4CHuYoMj18xUNmY1fXxW\n W2RuUK1X0HGBu1Slwk4M2F6ZKE1dXivAx+ErsadAcCacISIAb28hbI/hqI2SPdKl/GcDpWZnpbr\n FJmvMcOrIRCC4wDVaO1TNXt6k2FrquRz5GnzvimZimMZzRgMxCtIS5AjSaglBVgpJ26UhSe1q4J\n M1HCBL5yZqx2Objnr+g==", "X-Proofpoint-ORIG-GUID": "QoSLrto0LqV-5eMEgcOapwr4n5JqPDhe", "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-03-29_05,2026-03-28_01,2025-10-01_01", "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n malwarescore=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0\n phishscore=0 adultscore=0 bulkscore=0 impostorscore=0 clxscore=1015\n spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound\n adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001\n definitions=main-2603300141" }, "content": "The current reset process saves the device's config space state before\nreset and restores it afterward. However errors may occur unexpectedly and\nit may then be impossible to save config space because the device may be\ninaccessible (e.g. DPC). This results in saving invalid values that get\nwritten back to the device during state restoration.\n\nWith a reset we want to recover/restore the device into a functional state.\nSo avoid saving the state of the config space when the device config space\nis inaccessible.\n\nSigned-off-by: Farhan Ali <alifm@linux.ibm.com>\nReviewed-by: Niklas Schnelle <schnelle@linux.ibm.com>\nReviewed-by: Bjorn Helgaas <bhelgaas@google.com>\n---\n drivers/pci/pci.c | 24 ++++++++++++++++++++++++\n 1 file changed, 24 insertions(+)", "diff": "diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c\nindex 70162f15a72c..b36263834289 100644\n--- a/drivers/pci/pci.c\n+++ b/drivers/pci/pci.c\n@@ -722,6 +722,27 @@ u16 pci_find_dvsec_capability(struct pci_dev *dev, u16 vendor, u16 dvsec)\n }\n EXPORT_SYMBOL_GPL(pci_find_dvsec_capability);\n \n+static bool pci_dev_config_accessible(struct pci_dev *dev, char *msg)\n+{\n+\tu32 val;\n+\n+\t/*\n+\t * If device's config space is inaccessible it can return ~0 for\n+\t * any reads. Since VFs can also return ~0 for Device and Vendor ID\n+\t * check Command and Status registers. Note that this is racy\n+\t * because the device may become inaccessible partway through\n+\t * next access.\n+\t */\n+\tpci_read_config_dword(dev, PCI_COMMAND, &val);\n+\tif (PCI_POSSIBLE_ERROR(val)) {\n+\t\tpci_warn(dev, \"Device config space inaccessible; unable to %s\\n\",\n+\t\t\t\tmsg);\n+\t\treturn false;\n+\t}\n+\n+\treturn true;\n+}\n+\n /**\n * pci_find_parent_resource - return resource region of parent bus of given\n *\t\t\t region\n@@ -5029,6 +5050,9 @@ static void pci_dev_save_and_disable(struct pci_dev *dev)\n \t */\n \tpci_set_power_state(dev, PCI_D0);\n \n+\tif (!pci_dev_config_accessible(dev, \"save state\"))\n+\t\treturn;\n+\n \tpci_save_state(dev);\n \t/*\n \t * Disable the device by clearing the Command register, except for\n", "prefixes": [ "v12", "2/7" ] }