get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2194812,
    "url": "http://patchwork.ozlabs.org/api/patches/2194812/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260209171535.v2.1.I5fd5d83f518681b3949d8ab2f16ba8244fd3e774@changeid/",
    "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": "<20260209171535.v2.1.I5fd5d83f518681b3949d8ab2f16ba8244fd3e774@changeid>",
    "list_archive_url": null,
    "date": "2026-02-10T01:15:35",
    "name": "[v2] PCI/portdrv: Allow probing even without child services",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "ceaaf8e4dc9ee421533e1b5c4d708d2f070c489d",
    "submitter": {
        "id": 67074,
        "url": "http://patchwork.ozlabs.org/api/people/67074/?format=api",
        "name": "Brian Norris",
        "email": "briannorris@chromium.org"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260209171535.v2.1.I5fd5d83f518681b3949d8ab2f16ba8244fd3e774@changeid/mbox/",
    "series": [
        {
            "id": 491586,
            "url": "http://patchwork.ozlabs.org/api/series/491586/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=491586",
            "date": "2026-02-10T01:15:35",
            "name": "[v2] PCI/portdrv: Allow probing even without child services",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/491586/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2194812/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2194812/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <linux-pci+bounces-47049-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 (1024-bit key;\n unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256\n header.s=google header.b=LeUXQE5+;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-pci+bounces-47049-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org\n header.b=\"LeUXQE5+\"",
            "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=74.125.82.177",
            "smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=chromium.org",
            "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=chromium.org"
        ],
        "Received": [
            "from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])\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 4f93ZK66pSz1xtr\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 10 Feb 2026 12:17:13 +1100 (AEDT)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id 36A4C3019809\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 10 Feb 2026 01:17:11 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 32E5F158DA3;\n\tTue, 10 Feb 2026 01:17:08 +0000 (UTC)",
            "from mail-dy1-f177.google.com (mail-dy1-f177.google.com\n [74.125.82.177])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id DD5F33EBF1A\n\tfor <linux-pci@vger.kernel.org>; Tue, 10 Feb 2026 01:17:06 +0000 (UTC)",
            "by mail-dy1-f177.google.com with SMTP id\n 5a478bee46e88-2b8675d4f93so2141706eec.0\n        for <linux-pci@vger.kernel.org>; Mon, 09 Feb 2026 17:17:06 -0800 (PST)",
            "from localhost ([2a00:79e0:2e7c:8:b8b8:83d8:d937:b0f8])\n        by smtp.gmail.com with UTF8SMTPSA id\n 5a478bee46e88-2b855c8d90bsm8479736eec.33.2026.02.09.17.17.04\n        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n        Mon, 09 Feb 2026 17:17:05 -0800 (PST)"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1770686228; cv=none;\n b=WSxCjh6Qsgcv1RaOKndXrJaYM02ftrhU4FAXceJ7bVUxx3NsIuIPYl9NgEoe7nWfCS5ooB9a3Z1pi2XFVf6xitlzRYgc0dDZT0S+QIIR1d6GOU7NvmokVbOeXsKnFv/8gDStapvtiOBpz/DVTcwbNcsykJnm7xaP5wBSod8r0nU=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1770686228; c=relaxed/simple;\n\tbh=3rQT1ZXwHV/aNuRkhTms30L7bcfKATRXNqULQYhc0+Q=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=haWRQwyYlDqy5FVzp5hozGDaRIJGfx03dUAs5GSbXQjqhCWX+6z3dZCX79oVIzAmTJLyG4F7447cVkrv/96lcWhqwuZ3XUXVPAsU75/eDyIn+EHE+whw81qipLDwEiHU8X7kVm3vCCdsB8Mr4/umWr3Ql/UmvoozPz7UCPF37X4=",
        "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=chromium.org;\n spf=pass smtp.mailfrom=chromium.org;\n dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org\n header.b=LeUXQE5+; arc=none smtp.client-ip=74.125.82.177",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=chromium.org; s=google; t=1770686226; x=1771291026;\n darn=vger.kernel.org;\n        h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n         :to:from:from:to:cc:subject:date:message-id:reply-to;\n        bh=sPkH+QdMmWbvs590N9FGAiv6noldst9vpcbNY7dgv2o=;\n        b=LeUXQE5+cImPQyUiw4Sc3lTX3y2cip1dfLY9t602DHFx+WHvCzLwotlfnR0ILEZhb3\n         bsYuG2MI2pzYQVN+wuMfqYLLJzWoU4bFK+DJMP57pL2AWXMmSJ2Qwi8snzbN6M9haSje\n         L5T8CNQb3hCter6jJD2lM35RPAsFJk1nQA+js=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20230601; t=1770686226; x=1771291026;\n        h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n         :message-id:reply-to;\n        bh=sPkH+QdMmWbvs590N9FGAiv6noldst9vpcbNY7dgv2o=;\n        b=hiOQmIvQinCl0Bali4VK6fbJicAXmrEO6K2O8plpQwGqVknRwEcAvyXJVtHyvQEwSa\n         7m8iOMIh9GFONP6/MOoJsbRZzJJHqLwNwKjh7Fq3JNBO8OqOHqHUSCKKNTW6Een3OEUB\n         G2+LsK1ZIkvm3LJFIjt/T07jEjrj5RfRXkAOw6WSkVO3sAUCa9ejtRtiJ5uiYhniANQV\n         jaLJs/KYMhdB9OIclI9yjuqT5m5sl2m1PXwL1XeHr8AzDyJ7h6Y9TMeMJqcWGGSDABR6\n         2SLTaVD1ZYo/4F79qOF8+CBMdjKtA426f8VYbpmpWk6AG3zHI5i8i38PIYTu5KZsBwQA\n         StmA==",
        "X-Forwarded-Encrypted": "i=1;\n AJvYcCUHcrvdJZHHiVecfX3Mz/C8eMQeFObk6DZcF5n1K5qgAaO1Kcu7aVlHuU6z01mmgnBrdLHfPX4DC5M=@vger.kernel.org",
        "X-Gm-Message-State": "AOJu0YzlaUw7PUqTVoSVIp8CwNZfIwAxirxl8L99Pd1se0K3vJQJYrYr\n\tUBdOr+gvOH4ALNL/prkhaniNDI4Yxu2kldx1eTnSz/EE7t/NtM8VCQopfPY8ZFdvHg==",
        "X-Gm-Gg": "AZuq6aJkOcN8Aq3iMHB/fce1B2DOdmWxS0OR3ND5Ea2cM6i4X31cZq1aN0bDpkIHpPb\n\tmWP5JWK2lVt5Z2o/60OvSktI+IGrAq/tNxERhTfP4HSowo2jr3+yFgu4F4X44WunJzH/5voYKGY\n\tk6Bc/+i43Wh1Tj8mZF4dZDC4uup6Moq2pLyfvBQy7009XV02XhcF60za6jIL2exucwK7vyJ4Z33\n\txBi1wBO9g1R8+VaO62h3VcQLThmZzJlz3uEAzNnQVjVwxO0DcxKSJwVPOxtld6N2LdltAFb4KJH\n\te1W1xE4uS6Otdonz9V7eHs8Xpng//CQvohqv8KLhfNhhixWmJ0+r3nb47FcVUoZ3oDE6/HjKgGF\n\tQvMzCLajNkI2k0mj7TBFzPD+gZuoFDV48c49BFM8CZ3rcCqp52LjrIt1lGy9gfd5hrFWttudBp2\n\teTy+4mx1J0jin/HW5ArQI/e1xMuoBexE9QON+1085SC3W23zg/ikAQTxondOpW6w==",
        "X-Received": "by 2002:a05:7300:c9e:b0:2b7:857:db6a with SMTP id\n 5a478bee46e88-2b85672be26mr6509418eec.21.1770686225789;\n        Mon, 09 Feb 2026 17:17:05 -0800 (PST)",
        "From": "Brian Norris <briannorris@chromium.org>",
        "To": "Bjorn Helgaas <bhelgaas@google.com>",
        "Cc": "linux-kernel@vger.kernel.org,\n\tLukas Wunner <lukas@wunner.de>,\n\tManivannan Sadhasivam <mani@kernel.org>,\n\tlinux-pci@vger.kernel.org,\n\tBrian Norris <briannorris@chromium.org>",
        "Subject": "[PATCH v2] PCI/portdrv: Allow probing even without child services",
        "Date": "Mon,  9 Feb 2026 17:15:35 -0800",
        "Message-ID": "\n <20260209171535.v2.1.I5fd5d83f518681b3949d8ab2f16ba8244fd3e774@changeid>",
        "X-Mailer": "git-send-email 2.53.0.239.g8d8fc8a987-goog",
        "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"
    },
    "content": "The PCIe port driver fails to probe if it finds no child services,\npresumably under the assumption that the driver is not useful in that\ncase. However, the driver *can* still be useful for power management\nsupport -- namely, it still configures the port for runtime PM / D3,\nwhich may be important for allowing a bridge to enter low power modes.\n\nThus, allow probe to succeed even if no IRQs and no child services are\navailable. This also mirrors existing behavior for ports that have no\nPCIe capabilities, where we'd also probe successfully.\n\nThis change is a bit more important after commit f5cd8a929c82 (\"PCI:\ndwc: Remove MSI/MSIX capability for Root Port if iMSI-RX is used as MSI\ncontroller\"), because it's common for some DWC-based systems to:\n\n1. have only have the \"aer\" and \"pcie_pme\" port services available and\n2. not define legacy INTx interrupts properly in their device tree.\n\nAfter commit f5cd8a929c82, such systems may fail\npcie_init_service_irqs() and so exit with -ENODEV.\n\nLink: https://lore.kernel.org/all/nyada24tqwlkzdceyoxbzitzygvp4elvj5oajnqdwb33xkcdwk@76vnrx45fsfd/\nSigned-off-by: Brian Norris <briannorris@chromium.org>\n---\n\nChanges in v2:\n * clear master when we have no child services\n\n drivers/pci/pcie/portdrv.c | 21 +++++++--------------\n 1 file changed, 7 insertions(+), 14 deletions(-)",
    "diff": "diff --git a/drivers/pci/pcie/portdrv.c b/drivers/pci/pcie/portdrv.c\nindex 88af0dacf351..19b08f3653ee 100644\n--- a/drivers/pci/pcie/portdrv.c\n+++ b/drivers/pci/pcie/portdrv.c\n@@ -330,7 +330,7 @@ static int pcie_device_init(struct pci_dev *pdev, int service, int irq)\n  */\n static int pcie_port_device_register(struct pci_dev *dev)\n {\n-\tint status, capabilities, i, nr_service;\n+\tint status, capabilities, i;\n \tint irqs[PCIE_PORT_DEVICE_MAXSERVICES];\n \n \t/* Enable PCI Express port device */\n@@ -355,29 +355,22 @@ static int pcie_port_device_register(struct pci_dev *dev)\n \tif (status) {\n \t\tcapabilities &= PCIE_PORT_SERVICE_HP;\n \t\tif (!capabilities)\n-\t\t\tgoto error_disable;\n+\t\t\tgoto out;\n \t}\n \n \t/* Allocate child services if any */\n-\tstatus = -ENODEV;\n-\tnr_service = 0;\n \tfor (i = 0; i < PCIE_PORT_DEVICE_MAXSERVICES; i++) {\n \t\tint service = 1 << i;\n \t\tif (!(capabilities & service))\n \t\t\tcontinue;\n-\t\tif (!pcie_device_init(dev, service, irqs[i]))\n-\t\t\tnr_service++;\n+\t\tpcie_device_init(dev, service, irqs[i]);\n \t}\n-\tif (!nr_service)\n-\t\tgoto error_cleanup_irqs;\n \n+out:\n+\t/* With no child services, we shouldn't need bus mastering. */\n+\tif (!capabilities)\n+\t\tpci_clear_master(dev);\n \treturn 0;\n-\n-error_cleanup_irqs:\n-\tpci_free_irq_vectors(dev);\n-error_disable:\n-\tpci_disable_device(dev);\n-\treturn status;\n }\n \n typedef int (*pcie_callback_t)(struct pcie_device *);\n",
    "prefixes": [
        "v2"
    ]
}