get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 104828,
    "url": "http://patchwork.dpdk.org/api/patches/104828/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20211202161034.519226-1-chandu@amd.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20211202161034.519226-1-chandu@amd.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20211202161034.519226-1-chandu@amd.com",
    "date": "2021-12-02T16:10:34",
    "name": "[v2] net/axgbe: use PCI root complex device to distinguish AMD hardware",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "a0e9dc7b00afa188c473f79a21bfc2d8996f2807",
    "submitter": {
        "id": 1569,
        "url": "http://patchwork.dpdk.org/api/people/1569/?format=api",
        "name": "Namburu, Chandu-babu",
        "email": "chandu@amd.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patchwork.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20211202161034.519226-1-chandu@amd.com/mbox/",
    "series": [
        {
            "id": 20838,
            "url": "http://patchwork.dpdk.org/api/series/20838/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=20838",
            "date": "2021-12-02T16:10:34",
            "name": "[v2] net/axgbe: use PCI root complex device to distinguish AMD hardware",
            "version": 2,
            "mbox": "http://patchwork.dpdk.org/series/20838/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/104828/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/104828/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 4EF09A0548;\n\tThu,  2 Dec 2021 17:11:11 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id A7AFE40692;\n\tThu,  2 Dec 2021 17:11:10 +0100 (CET)",
            "from NAM12-DM6-obe.outbound.protection.outlook.com\n (mail-dm6nam12on2072.outbound.protection.outlook.com [40.107.243.72])\n by mails.dpdk.org (Postfix) with ESMTP id 5E8124067B;\n Thu,  2 Dec 2021 17:11:08 +0100 (CET)",
            "from MW4PR04CA0176.namprd04.prod.outlook.com (2603:10b6:303:85::31)\n by CH0PR12MB5026.namprd12.prod.outlook.com (2603:10b6:610:e1::14)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.24; Thu, 2 Dec\n 2021 16:11:06 +0000",
            "from CO1NAM11FT043.eop-nam11.prod.protection.outlook.com\n (2603:10b6:303:85:cafe::63) by MW4PR04CA0176.outlook.office365.com\n (2603:10b6:303:85::31) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23 via Frontend\n Transport; Thu, 2 Dec 2021 16:11:06 +0000",
            "from SATLEXMB04.amd.com (165.204.84.17) by\n CO1NAM11FT043.mail.protection.outlook.com (10.13.174.193) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id\n 15.20.4755.13 via Frontend Transport; Thu, 2 Dec 2021 16:11:06 +0000",
            "from cae.amd.com (10.180.168.240) by SATLEXMB04.amd.com\n (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17; Thu, 2 Dec\n 2021 10:11:03 -0600"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=Vi+VJXMH2FL4nZ74W3/UxhTRCdmOTzRHiSRosERd2084m5huqqotQ2UsbblwsdTBvbkur3VQ/YhSwl/GhtiUCB2tSQydEIrzD4WJGKp6rAsJMZMM9uRUw4KjT095nw/fjzPzRXSn/q5+6AOa67rOh1L9K0rgvrdodtTlwCcUF98TlVUeVYxxG9bD5ZZr32+7pm/iCF+S9iIwlBxqlSVQk4Ddclh/qD2pZw/vhutUR0Xpu7Hpe1C7OB3Wb71H1aS20SYhy4GiC5YqpKu2NsclHCAwPU/DBxP/4MrsX1ebG6q4Z1soYmmY6ca+l0SYNVK2WRGe1Nmggl5qhztZ8rWF8Q==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=SXc8ytUJrtvRqsRYQZXeeQrBAWW3rbw1wcr5p0OYrrw=;\n b=itWq/PFzVeS06dY0OtYw6yZyMHUNqlSV0zwIOnZpbXGmPxcwgxzZ5S4yuXM6j/aBhkEV4UIXiaqirAQx5/zNB5GXKJNo1BHXNWDrNeisqK9lkMgzbMa2G97aAL8SerkQPq68W5qgA6frq72/e6tpP7rgCmCdj73CSeSSGpoZbvJ3w/YYdXcfFHCAmOfkU5Ylc6U55GpZyHmFr/uRuMmf+JD1ov0XqUrxUSszl3PV0DGVK5kArInnjZNwQ8LBoa+6FCp85Zl8f9XorowXdqMcimkMQl9UtZo4KheyOViAk0fnvqmm8LMyCNYRO54sk970dL1vwdqDj/SfKo6pEUjEcw==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 165.204.84.17) smtp.rcpttodomain=dpdk.org smtp.mailfrom=amd.com; dmarc=pass\n (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;\n dkim=none (message not signed); arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=SXc8ytUJrtvRqsRYQZXeeQrBAWW3rbw1wcr5p0OYrrw=;\n b=q8yv1XdNcBDSqnlt3oR15zsuWlX9fczcl5jVHQQI09ICL7FdDmoEezTrz4o8oLYSQTM95imtgxciKOGg1OwnWimDfnKGuiupJI24k8dh6leE40yjyhkKng/143HrD3yDxFO9WKOUyoUCcwiIlFmVZaHWzX7FOtviaiaVP/8aL2U=",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 165.204.84.17)\n smtp.mailfrom=amd.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=amd.com;",
        "Received-SPF": "Pass (protection.outlook.com: domain of amd.com designates\n 165.204.84.17 as permitted sender) receiver=protection.outlook.com;\n client-ip=165.204.84.17; helo=SATLEXMB04.amd.com;",
        "From": "Chandubabu Namburu <chandu@amd.com>",
        "To": "<dev@dpdk.org>, <david.marchand@redhat.com>",
        "CC": "<Selwin.Sebastian@amd.com>, <Arsalan_Awan@mentor.com>,\n <ferruh.yigit@intel.com>, Chandubabu Namburu <chandu@amd.com>,\n <stable@dpdk.org>",
        "Subject": "[PATCH v2] net/axgbe: use PCI root complex device to distinguish AMD\n hardware",
        "Date": "Thu, 2 Dec 2021 16:10:34 +0000",
        "Message-ID": "<20211202161034.519226-1-chandu@amd.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20211126102403.13223-1-chandu@amd.com>",
        "References": "<20211126102403.13223-1-chandu@amd.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[10.180.168.240]",
        "X-ClientProxiedBy": "SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com\n (10.181.40.145)",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "d5394220-5693-438b-08e5-08d9b5ae58ae",
        "X-MS-TrafficTypeDiagnostic": "CH0PR12MB5026:",
        "X-Microsoft-Antispam-PRVS": "\n <CH0PR12MB5026791A11E8F810763FFCECC8699@CH0PR12MB5026.namprd12.prod.outlook.com>",
        "X-MS-Oob-TLC-OOBClassifiers": "OLM:2276;",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n Ibib5MCpRTu8ifj6wsoeXJNlOchljSQ7DkM4KvaehqOkKAe2p8tsCBgBEsVL9UmOfvSW81gqH8xQeZi1AZj9Rch6CeA9UPEcrPQQDz4RJsElvxfAK1Xne6/UEg/uysjgEq52HpSnHHu24B166NW24VDD/MXN0Ij5n4RUOAZ8qNkxVfd5ITVF2vDbm/CnEZ7+oq9ChjseHKIRWpB184nEx6m5JTpdeQPcfp4j78G59wCjLTJ/az88tmKqrFG5VUkJp8J0vYT7i9toNNZ/deGdIzZSdxmIcSl2rPISX2JbQJqwecOqxp5cgtQvnHExXQcJ1ugEr4dR1gE+QW6xKj6R1Axl0b6eUN8mvKqxDFIyuXcM5ZNL+qXqHuaqnhc8wyCtW8zKJEQtIHxIkOh4z3+jCKQrXtPuHpRrUZrY9Mi3Y6InzIP0uL7p89VHV73Gq8OUwZmz6VXoPCajPul6czE8Pu9lMIMAzg2Ol+pwk/ruyJ8JKWJ43x/ZqON9W0qt6CXHVS6alzUgZa0CvWJGMjU4e0LugsCGyz+yWUWgvNLXD2nOevU00l3i/4XDSbEOQGzv6phfxDX3UrTM1AettnWO0XiHVGra3b4FvGkK8atV90AVz2urEHLmmdTz3VJWrIFAet8mtP01wXM6jReV2cm5mxeRAy0E9omkOjB7TlfTxQmOmebhRAprgE2bNBM07g+65FQuWfmxXdqvvgxtxtJlT7YH3FUS4vmCT5xU/cqKQHaKAYOK3Jd9JYmKbGrT+iEeP4ud/dOqdnGWDvSxFjJRBmWJQdDwvGN4lCX0T9eXQb+WZua3QABShDTjs739ULjE",
        "X-Forefront-Antispam-Report": "CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:;\n IPV:CAL; SFV:NSPM; H:SATLEXMB04.amd.com; PTR:InfoDomainNonexistent; CAT:NONE;\n SFS:(4636009)(36840700001)(46966006)(40470700001)(86362001)(2906002)(4326008)(336012)(426003)(5660300002)(83380400001)(16526019)(81166007)(2616005)(36860700001)(8936002)(36756003)(7696005)(47076005)(508600001)(1076003)(186003)(82310400004)(110136005)(8676002)(70586007)(70206006)(6666004)(26005)(316002)(40460700001)(54906003)(356005)(36900700001)(2101003);\n DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "amd.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "02 Dec 2021 16:11:06.4661 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n d5394220-5693-438b-08e5-08d9b5ae58ae",
        "X-MS-Exchange-CrossTenant-Id": "3dd8961f-e488-4e60-8e11-a82d994e183d",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17];\n Helo=[SATLEXMB04.amd.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n CO1NAM11FT043.eop-nam11.prod.protection.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "CH0PR12MB5026",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "\"bus/pci: optimize bus scan\" broke axgbe on V1000/R1000.\nRV root complex pci device does not have any kernel driver assigned\nso it is removed from pci scan list which is used in\n\"net/axgbe: add a HW quirk for register definitions\".\n\nGet root complex device id directly from pci sysfs instead of\npci scan list.\n\nFixes: 991e0b1dbc4a (net/axgbe: add a HW quirk for register definitions)\nCc: stable@dpdk.org\n\nSigned-off-by: Chandubabu Namburu <chandu@amd.com>\n---\n drivers/net/axgbe/axgbe_ethdev.c | 39 ++++++++++++++++----------------\n 1 file changed, 20 insertions(+), 19 deletions(-)",
    "diff": "diff --git a/drivers/net/axgbe/axgbe_ethdev.c b/drivers/net/axgbe/axgbe_ethdev.c\nindex 7d40c18a86..7b8d94ca3c 100644\n--- a/drivers/net/axgbe/axgbe_ethdev.c\n+++ b/drivers/net/axgbe/axgbe_ethdev.c\n@@ -10,6 +10,8 @@\n #include \"axgbe_regs.h\"\n #include \"rte_time.h\"\n \n+#include \"eal_filesystem.h\"\n+\n static int eth_axgbe_dev_init(struct rte_eth_dev *eth_dev);\n static int  axgbe_dev_configure(struct rte_eth_dev *dev);\n static int  axgbe_dev_start(struct rte_eth_dev *dev);\n@@ -2117,28 +2119,27 @@ static void axgbe_default_config(struct axgbe_port *pdata)\n \tpdata->power_down = 0;\n }\n \n-static int\n-pci_device_cmp(const struct rte_device *dev, const void *_pci_id)\n+/*\n+ * Return PCI root complex device id on success else 0\n+ */\n+static uint16_t\n+get_pci_rc_devid(void)\n {\n-\tconst struct rte_pci_device *pdev = RTE_DEV_TO_PCI_CONST(dev);\n-\tconst struct rte_pci_id *pcid = _pci_id;\n+\tchar pci_sysfs[PATH_MAX];\n+\tconst struct rte_pci_addr pci_rc_addr = {0, 0, 0, 0};\n+\tunsigned long device_id;\n \n-\tif (pdev->id.vendor_id == AMD_PCI_VENDOR_ID &&\n-\t\t\tpdev->id.device_id == pcid->device_id)\n-\t\treturn 0;\n-\treturn 1;\n-}\n+\tsnprintf(pci_sysfs, sizeof(pci_sysfs), \"%s/\" PCI_PRI_FMT \"/device\",\n+\t\t rte_pci_get_sysfs_path(), pci_rc_addr.domain,\n+\t\t pci_rc_addr.bus, pci_rc_addr.devid, pci_rc_addr.function);\n \n-static bool\n-pci_search_device(int device_id)\n-{\n-\tstruct rte_bus *pci_bus;\n-\tstruct rte_pci_id dev_id;\n+\t/* get device id */\n+\tif (eal_parse_sysfs_value(pci_sysfs, &device_id) < 0) {\n+\t\tPMD_INIT_LOG(ERR, \"Error in reading PCI sysfs\\n\");\n+\t\treturn 0;\n+\t}\n \n-\tdev_id.device_id = device_id;\n-\tpci_bus = rte_bus_find_by_name(\"pci\");\n-\treturn (pci_bus != NULL) &&\n-\t\t(pci_bus->find_device(NULL, pci_device_cmp, &dev_id) != NULL);\n+\treturn (uint16_t)device_id;\n }\n \n /*\n@@ -2180,7 +2181,7 @@ eth_axgbe_dev_init(struct rte_eth_dev *eth_dev)\n \t/*\n \t * Use root complex device ID to differentiate RV AXGBE vs SNOWY AXGBE\n \t */\n-\tif (pci_search_device(AMD_PCI_RV_ROOT_COMPLEX_ID)) {\n+\tif ((get_pci_rc_devid()) == AMD_PCI_RV_ROOT_COMPLEX_ID) {\n \t\tpdata->xpcs_window_def_reg = PCS_V2_RV_WINDOW_DEF;\n \t\tpdata->xpcs_window_sel_reg = PCS_V2_RV_WINDOW_SELECT;\n \t} else {\n",
    "prefixes": [
        "v2"
    ]
}