get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.1/patches/2222855/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2222855,
    "url": "http://patchwork.ozlabs.org/api/1.1/patches/2222855/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260413210608.2912-3-alifm@linux.ibm.com/",
    "project": {
        "id": 28,
        "url": "http://patchwork.ozlabs.org/api/1.1/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
    },
    "msgid": "<20260413210608.2912-3-alifm@linux.ibm.com>",
    "date": "2026-04-13T21:06:03",
    "name": "[v13,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/1.1/people/73785/?format=api",
        "name": "Farhan Ali",
        "email": "alifm@linux.ibm.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260413210608.2912-3-alifm@linux.ibm.com/mbox/",
    "series": [
        {
            "id": 499754,
            "url": "http://patchwork.ozlabs.org/api/1.1/series/499754/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=499754",
            "date": "2026-04-13T21:06:01",
            "name": "Error recovery for vfio-pci devices on s390x",
            "version": 13,
            "mbox": "http://patchwork.ozlabs.org/series/499754/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2222855/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2222855/checks/",
    "tags": {},
    "headers": {
        "Return-Path": "\n <linux-pci+bounces-52449-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=o8h+GjpC;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org;\n envelope-from=linux-pci+bounces-52449-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=\"o8h+GjpC\"",
            "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 tor.lore.kernel.org (tor.lore.kernel.org\n [IPv6:2600:3c04:e001:36c::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fvg292SQ1z1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 14 Apr 2026 07:06:41 +1000 (AEST)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id 36E63303A9F1\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 13 Apr 2026 21:06:23 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id E982F392823;\n\tMon, 13 Apr 2026 21:06:22 +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 5C72B3939A4;\n\tMon, 13 Apr 2026 21:06:21 +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 63DG3m183430311;\n\tMon, 13 Apr 2026 21:06:15 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 4dfcqf1c06-1\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n\tMon, 13 Apr 2026 21:06:15 +0000 (GMT)",
            "from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1])\n\tby ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id\n 63DHF0Xs031106;\n\tMon, 13 Apr 2026 21:06:14 GMT",
            "from smtprelay03.dal12v.mail.ibm.com ([172.16.1.5])\n\tby ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4dg10y6ymr-1\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n\tMon, 13 Apr 2026 21:06:14 +0000",
            "from smtpav03.wdc07v.mail.ibm.com (smtpav03.wdc07v.mail.ibm.com\n [10.39.53.230])\n\tby smtprelay03.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id\n 63DL6DWT19792514\n\t(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n\tMon, 13 Apr 2026 21:06:13 GMT",
            "from smtpav03.wdc07v.mail.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 3433058054;\n\tMon, 13 Apr 2026 21:06:13 +0000 (GMT)",
            "from smtpav03.wdc07v.mail.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id DD0725805A;\n\tMon, 13 Apr 2026 21:06:11 +0000 (GMT)",
            "from IBM-D32RQW3.ibm.com (unknown [9.61.254.131])\n\tby smtpav03.wdc07v.mail.ibm.com (Postfix) with ESMTP;\n\tMon, 13 Apr 2026 21:06:11 +0000 (GMT)"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776114382; cv=none;\n b=tkszk42oyxyGHZo9oXo2ex9m/syt/tgiJDL0E9VZ6iBcwCqcdHcygE87BRPQDWtzm+b2bo/+qV7821YAX4gNi/0RPtSaBqWm43n3fQ4lq8iBp5JPFoBjso+8RN7yEkrHN1XYbEJ8cBfCzuACLIlvaafR8oofuJFeVQVMd9zHzzw=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776114382; c=relaxed/simple;\n\tbh=POORsXRkk4nOKnrZRpviXSsULTny9Rnzj8bxogy/6pk=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=mbz8l0xrZomChCOQ7Y6AHdrnTbTkJymv4Ysk6XSLzwQZoeO/rCT5RzyEvfiKlfJvMD/CzEE2St+hzXbu3Nyv5+zf+quu2W1NjvEoHzxR68ZlwuSPfCwgOG9dMVLDJ003CnMcVt1ROeYb/DG+tY7790bVYygk3dPWvJszjySMldA=",
        "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=o8h+GjpC; 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=B03ES7Gw4vOtbWqO6\n\tB3bh3UMTVIWbkYsdM5+gP6DaHk=; b=o8h+GjpCCNNspgx4cqSKhQHaZRZb/B8ad\n\tFL6EUIwUC0G8xijUWB4YuVnjWlAm3Ei3A3PgzwBl/oE8Lip46/aDHkaamhUjCS9/\n\trRpThy+M9R37I2mcsVXAnM0sccUo6iGGdmS3JPiQ5ARsS5ygPaBbzDe3aBsdB7fO\n\tqjzNoFD9hswRLbUHDNIgK3hY2rkH3wXrQnJ+RtYk3QykDKTZC/94doXctBCWAKC5\n\tPzNY3UfTW6f+FyEWEx84kc+sGcmoY+mWf4opjzkIDm0m7YxHss1mvlvxaoIh9+Tg\n\tR7TPU+81tyQpUsnWjljr50yieSCqhUjTlvwl8gvZvjOAgT8vpcUvQ==",
        "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 v13 2/7] PCI: Avoid saving config space state if inaccessible",
        "Date": "Mon, 13 Apr 2026 14:06:03 -0700",
        "Message-ID": "<20260413210608.2912-3-alifm@linux.ibm.com>",
        "X-Mailer": "git-send-email 2.43.0",
        "In-Reply-To": "<20260413210608.2912-1-alifm@linux.ibm.com>",
        "References": "<20260413210608.2912-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-Spam-Details-Enc": "AW1haW4tMjYwNDEzMDIwNSBTYWx0ZWRfXzDHj9vBP0TeQ\n pXkTOB2W7YPfhOYl099O9D0QX8Rvk1mu+qLTwh7hkI/LIwf6xiRaROPgpu10fjGAcXTDXvVHeP8\n ys1Wo8wSnp1Y4SZM1C9VOK4fricwrjcrp4pwwgsBNAqvUrGiAzGmgsAsp9puiNlEh1sEcBA73xW\n jjFKTqQY2UmJ+veWtfvbT8tRcdnMdLzDts13Vx/ghvEGjAlSXXcrKBs0aaNc9p5y8mQH0iTGKvU\n /Csq+HludxiB+f7ZTjwiBEXKQpsXo4VH9MHbnpYdZ06jf1tI8rM4FOtGzGxHHCIPcprQF06Thk+\n rVTFNswxoH+QNrga93xzI3/vX1Y4JZPPRh1hWdSMKXxYsIjCQwrT7T49ZsHCtV+05jTo3BmDK/q\n G1mhtZ1HT5Bm9VhCT8bKbd14y96GAITrqoF/VDziDYljOwQmaReLvviWh90nNizJCkoJAf94fH/\n pO9JDFEIH+VbtU0mNgQ==",
        "X-Proofpoint-GUID": "sENcbDER-SnREitPnUnRtymFyQoEx2Iu",
        "X-Proofpoint-ORIG-GUID": "kfYcxr6v0-NRyAeQK0vVsAsWlu0AbjoH",
        "X-Authority-Analysis": "v=2.4 cv=YemNIQRf c=1 sm=1 tr=0 ts=69dd5ac7 cx=c_pps\n a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17\n a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22\n a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=1XWaLZrsAAAA:8\n a=qS04rNcGil1I7-YeviAA:9",
        "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-04-13_03,2026-04-13_04,2025-10-01_01",
        "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n spamscore=0 adultscore=0 priorityscore=1501 lowpriorityscore=0 clxscore=1015\n impostorscore=0 bulkscore=0 malwarescore=0 suspectscore=0 phishscore=0\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604130205"
    },
    "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\nReviewed-by: Niklas Schnelle <schnelle@linux.ibm.com>\nReviewed-by: Bjorn Helgaas <bhelgaas@google.com>\nSigned-off-by: Farhan Ali <alifm@linux.ibm.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 d0c9f0166af5..e71b81415392 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@@ -5027,6 +5048,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": [
        "v13",
        "2/7"
    ]
}