Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/139524/?format=api
https://patches.dpdk.org/api/patches/139524/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/20240419032630.1215256-2-chaoyong.he@corigine.com/", "project": { "id": 1, "url": "https://patches.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": "<20240419032630.1215256-2-chaoyong.he@corigine.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20240419032630.1215256-2-chaoyong.he@corigine.com", "date": "2024-04-19T03:26:29", "name": "[v3,1/2] bus/pci: fix secondary process PCI uio resource map problem", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "aacfa88e88cb00819ac0d2118fa20f5b9f9c49f9", "submitter": { "id": 2554, "url": "https://patches.dpdk.org/api/people/2554/?format=api", "name": "Chaoyong He", "email": "chaoyong.he@corigine.com" }, "delegate": { "id": 1, "url": "https://patches.dpdk.org/api/users/1/?format=api", "username": "tmonjalo", "first_name": "Thomas", "last_name": "Monjalon", "email": "thomas@monjalon.net" }, "mbox": "https://patches.dpdk.org/project/dpdk/patch/20240419032630.1215256-2-chaoyong.he@corigine.com/mbox/", "series": [ { "id": 31787, "url": "https://patches.dpdk.org/api/series/31787/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=31787", "date": "2024-04-19T03:26:29", "name": "[v3,1/2] bus/pci: fix secondary process PCI uio resource map problem", "version": 3, "mbox": "https://patches.dpdk.org/series/31787/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/139524/comments/", "check": "success", "checks": "https://patches.dpdk.org/api/patches/139524/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 A374343EA9;\n\tFri, 19 Apr 2024 05:26:57 +0200 (CEST)", "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 80E9440633;\n\tFri, 19 Apr 2024 05:26:55 +0200 (CEST)", "from NAM11-BN8-obe.outbound.protection.outlook.com\n (mail-bn8nam11on2108.outbound.protection.outlook.com [40.107.236.108])\n by mails.dpdk.org (Postfix) with ESMTP id 16BAB40273;\n Fri, 19 Apr 2024 05:26:52 +0200 (CEST)", "from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5)\n by PH7PR13MB6170.namprd13.prod.outlook.com (2603:10b6:510:241::8)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.41; Fri, 19 Apr\n 2024 03:26:50 +0000", "from SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::ec12:7411:559a:850e]) by SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::ec12:7411:559a:850e%5]) with mapi id 15.20.7472.042; Fri, 19 Apr 2024\n 03:26:50 +0000" ], "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=NhAG8zlR6op048oW+NevbhJ4kO/1606v6xzYD57Q1S4jlXJprae2QnDUZPEI96krRYMDZzZYhThzmYygZkuJnBw6YBg0nSm3w/ZDc4yDz3px0GltvD+gZRHj429s3wG8SoK3OX29joaU/EI0MlQ3Os4NookVQu6L8bYqHS02xDftshwS7NihkgqvlGfYa13csRpnnGn63C0wOVEEr5STpOZ9M/uhla9mlt7THWrzsOhjPp+gMqmWr75k3oPmsS5G1Qp7/LNjnhyRgthcd2FYRUhKcz0luL1XYw4dx6YeF2E7B0eqZQIeup+ryi83UVdw6rgM3obrHNPkxD2LnTTUqQ==", "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=xLhataWRZeS2l3E9kPIQQk5JFrqIwPjJx2R0fzhpRnw=;\n b=X8e6fmcT5/iNBjVCCZKExB2SpWYg0ipyylt/qrv350gylmOR0U2w4GNBecz00hRfTS4Mej+71YJGnUT8nPiU7PlXgBVfU29wLHEkZ1eEnG+MPY/diXzukLceYXyavIzr8PH7iOF4ymLSMlHa/Uiz1ns1zfB9ppH4WrwFU7TlJRXx35cIDWAaTxEJSgpDqUvWZQ7ppEwIX8zJ2AcmVw3Q7gdgHdKySRVKBvmBGmO8sh0WuYeUeei2Dzr5QvUoCK2dBSzQeXQ4qAAi6K39n16MzCtWevHtKD2McS/sR7GVBVxCjW3XqrMSgKoJdS90AIbTS2DEocvqBdzHOQkiYQC3cA==", "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com;\n dkim=pass header.d=corigine.com; arc=none", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=xLhataWRZeS2l3E9kPIQQk5JFrqIwPjJx2R0fzhpRnw=;\n b=W+pFi9mcHvgC5zy/99RRMd2pKf+0O4fdVPo+EVaj+IcVKHczyga+uCtdieZ/mvOX17wCramtmOoekAbb2zTK2iEK7Fzc3CRVC7Ivwsrdfx6shLpZJLgYEP/EFpAzwSQf+AqoAKmI3VD6vheI5oKNRjH9n7z0JdcZx+4U5z8KGwA=", "Authentication-Results": "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=corigine.com;", "From": "Chaoyong He <chaoyong.he@corigine.com>", "To": "dev@dpdk.org", "Cc": "oss-drivers@corigine.com, Zerun Fu <zerun.fu@corigine.com>,\n mukawa@igel.co.jp, stable@dpdk.org, Chaoyong He <chaoyong.he@corigine.com>,\n Long Wu <long.wu@corigine.com>, Peng Zhang <peng.zhang@corigine.com>", "Subject": "[PATCH v3 1/2] bus/pci: fix secondary process PCI uio resource map\n problem", "Date": "Fri, 19 Apr 2024 11:26:29 +0800", "Message-Id": "<20240419032630.1215256-2-chaoyong.he@corigine.com>", "X-Mailer": "git-send-email 2.39.1", "In-Reply-To": "<20240419032630.1215256-1-chaoyong.he@corigine.com>", "References": "<20240129092231.3531217-1-chaoyong.he@corigine.com>\n <20240419032630.1215256-1-chaoyong.he@corigine.com>", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-ClientProxiedBy": "SI2PR01CA0008.apcprd01.prod.exchangelabs.com\n (2603:1096:4:191::10) To SJ0PR13MB5545.namprd13.prod.outlook.com\n (2603:10b6:a03:424::5)", "MIME-Version": "1.0", "X-MS-PublicTrafficType": "Email", "X-MS-TrafficTypeDiagnostic": "SJ0PR13MB5545:EE_|PH7PR13MB6170:EE_", "X-MS-Office365-Filtering-Correlation-Id": "918d5302-030d-4a17-fd93-08dc60208d42", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "BCL:0;", "X-Microsoft-Antispam-Message-Info": "\n AVd96sVMNnHSCq0LJ8M0LwQge9fmLqyyCTgZHSV0XYn6frath2dcqsLZWvuftwisEbCVM90IMNfAG7WKwYSFxZ1Ty8+lwZI/J2fbbNo7hYdUuFe1YgrATqM7qP/o1dPJjxTKxYxXZAmOzEZcjWiSW0Q1tEHJ22A3iRbx7mqYkI7tqgYPcNghsnQiqQwJm6TXbxQyZv0Ilfw3VdRzNrQMAO57gUOoCt6TetY9MnT4vHrdJSKm7OLhwRkhw2X7Z4+1aLzgRgexm/852iDLR66NlPFkM+PcDQ0ilKPSFDOu07J3+QmKipEuy+LjFidV3naY+EC0iFLE/Ig/exy2AZATTJaYOR2lus8kfVeby/LOkq0YyfPoQtReK0dm5Fu7lifAjrY8M8RjoVIjEakiYslEk0Rd/22ZKL2eOQnHH1udEozH044cGXxiNBmvcFxpuhHGZdTHygp41jkU65nGpvGcNHq7NRW7yZ35TvKZSJ2/q/n9mrKmVoknNW2zyu13XULmMIC2yvI3sdu+9fEh2oHyofaypQpo8ZkuQ1rt8RbF3p84hGlBG2r2tJusn+l9ChBltKjz3XRkQcOGWuh8mADMnJT5HOHtq14BA11On1iThRqwRvPK0ludnPyjvpeRclIfo0J8gnF6+gfpSdjjV9BKaZlJpb86yWGEmycKt14ZY84jj8ehgWz+Cz3zw19oEE6eYOdqD8Z1JuswxZSPvUiV6fKlnlFtsFJie8zpJ6r7iDdPFcNaX2VO1uk360m3tAa2CQSwK8oEWwnz2NSaCCyRa9cO3EvsaiVbXs/D26fo8biMFF0SG3cJwE7J0dQx7wdUENF5s+yNRQrPPQWELmaNJ9qv6xi9Wm7r2btGEAHemxoYOMPi7pPlzn5Ddp0c8TzhQI34ebAt1AgvdfEIALRzisGVkyCoPdJCEg/bxZu8oR2m15MnyQOh/IkU+8nI3I6Ng5kIBH0xH4yJFpSNfRXUqLMDNcqkOTSgQToWfbPrnS6jMY06QF7arbv7XQN+yrbtw41UmBatF1KDAkKUtJEzZODQKpgwQ0USfiQTJ/6DPwwXwuUkA4qN0dT62HohZYRMzlKAH65+FEzIWfgi/kZRd2K/19zdFtEOCzhbt7JmEyzIsCUEiuAFXgudkIkXScy+Gn3TF3AlnYAczASYupxh2yjCmu98Hu0gbWu4Ts1n60IPW2eedoPYFflAHOtTmWCchw0LJt0jWsu405hAFfRG5RrOQPeBjiG+bGbUpN1QRBggrCKxrImXAJel9bVV3wQpnnkpDFCt6bemQaeGBduYkBgwOxMFHOWqGi5M+Mcdyt8oGOZ6lZaO46nljmYAwjYbplyMpWU8sZXyhdrnnhNXng==", "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230031)(1800799015)(366007)(376005)(52116005)(38350700005); DIR:OUT;\n SFP:1102;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n 0XP8RBVEeuSbD2KhmquUoFf7fNsN4v61XrY2cvlUx551gf62ZnivMjmMTjdpvY/SVIWrlCJw42NU0nt+5IdAeeAg/SShPxC3TV1QStK2NIh6f/K+1qoKabuYcVbXyig1FIQj9Jgw0WmQS2BYc4MrminwU0OLvLdEUq7LZ3Ki9opdLXf1plXGf4KVAvj0Z6ycVw+1nDJMu9dNosT0rOErZJqGYayOL9N8syEM3sN9Z8x2P4Goly63L/NZkVqmV84WSKbv7/eD1Nc9q6LNALWT0fpCEX/kLgb5jF7SW3iINi9PZRy7GcZPJ5YIuzHmJg26Zr0v9BOZpS03TfUz5SkUKOZ4ywjMsv8BaATPSvGdogyGxIls6TJ4/ltwbCE9+daEcPh1LEMfxcufhULUJX/AENZY4vfljn6EXslFYfeNAPmRb/5/541/r3CLU9j2pQyMmtsyeP5HWLUPWgsj9dYGxP4hQ7QvCQyYBd7l0WrqAKptcKaYtIncHewJ+Wrb92I9gFyOkLzxWBr/no95sQSFzaqobXLamKgyXo3+johNJeeYzH2FPqhEzKYPFYUpol3LC8Z4BXT5plZQi6G6ceLq1fqty343Ceji6YdOXC9klSX/9t7mNSmEUux9xgjYg/sNxw+7RpxzL9XxzjNqAG3QKIn0jWdX4pfLrcEdgPxuWY5PGwt9IU1Lqh/rT672bpclcXbJWPpv2V3XTHKvlV1+tFijUpNlLer7Dam/4Jv+DD9Nz0kse0PVSdzKRAiHq6SWxf8qqI/HnH8vLarGGKcTPi4ldLAlY4embiPcxFKWmAF100M0XAegYfwVaCuvQylzb3LYLtU323Khr/KXuu8W8o8solAeQiM+moR6Fhs8rQ4I5YUhAWcbmnsfaYjP4GyYFJh9HdyRTLiPvJ/bA07XXlXaBC41EPwbtZ5TTXLnRCc8rGxZcGCAWLsDHYYo8g/ipe2Wa4E9p16iIhU3ibCez1rBA9ongK4ex9DXZAGLZiult14uN51hES4lcyuVA7HrVTZLI1b4LQZmzSS3B11QNCf936L0K0TM+Qwcel/9U0xaw6YoFYjxrll4vUndvQvoNrlxTguIyqXZKVl9kx7XiKy0O8ADzCMyf/nhmWiRfrFKPZ0xxqZsuet+Vj9T544aOLP9GvhALce4Jwi2rG0mHfk4jGTUCFmAe9QNER0trskvmbSeqRVCGRya9hH3bp3vzUtMX1UKswjMiRLnD0NNFCzIeyUO6AcJLRZ8q4IrRwsXog5QivqD2Yk+bZW2novoGghfSwdlLgNij4fm6bwXgU6g+vVgBDyO9SrROlb5b3XnTcOxEyzGdxbpGvPMKTFmxRZzS2zNemGOPblfMDlhk9caGYpyZSRRDmj4VvRwhAp0B8AaN3O1Z2GvA68iVi8KiXO8ln2z6tk56gyXRS+AyewnhxfKa2PkDlZjNJeUgFxh5KmrUZ18ka4sWL/cJFHqOTinqQ0dtFHzMa6nlmR+bT/6ALqLbZyelwJCScdCvN23b66TU2YREpKof+fF/KbBZEN6r3cPY4JOFjpN6WyUZcfLEDkdhKrrW2wMp2CUKVBLHOczG8dkYL5NVXtGRp1uBnee4Dv2HLfLiBMDOhGR+w==", "X-OriginatorOrg": "corigine.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 918d5302-030d-4a17-fd93-08dc60208d42", "X-MS-Exchange-CrossTenant-AuthSource": "SJ0PR13MB5545.namprd13.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "19 Apr 2024 03:26:50.6358 (UTC)", "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted", "X-MS-Exchange-CrossTenant-Id": "fe128f2c-073b-4c20-818e-7246a585940c", "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED", "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n Bev7dUSxs/eJI/NpEEHFEXR32x37LMhiteGpNDVp6u9y/SVes6Rv/ZHkN1C2I5rSlCVtnCmJA/okx/3+uKs7xINQ1NJJWjwn1TQIs9ojMu0=", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "PH7PR13MB6170", "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": "From: Zerun Fu <zerun.fu@corigine.com>\n\nFor the primary process, the logic loops all BARs and will skip\nthe map of BAR with an invalid physical address (0), also will\nassign 'uio_res->nb_maps' with the real mapped BARs number. But\nfor the secondary process, instead of loops all BARs, the logic\nusing the 'uio_res->nb_map' as index. If the device uses continuous\nBARs there will be no problem, whereas if it uses discrete BARs,\nit will lead to mapping errors.\n\nFix this problem by also loops all BARs and skip the map of BAR\nwith an invalid physical address in secondary process.\n\nFixes: 9b957f378abf (\"pci: merge uio functions for linux and bsd\")\nCc: mukawa@igel.co.jp\nCc: stable@dpdk.org\n\nSigned-off-by: Zerun Fu <zerun.fu@corigine.com>\nReviewed-by: Chaoyong He <chaoyong.he@corigine.com>\nReviewed-by: Long Wu <long.wu@corigine.com>\nReviewed-by: Peng Zhang <peng.zhang@corigine.com>\n---\n drivers/bus/pci/pci_common_uio.c | 40 ++++++++++++++++++++------------\n 1 file changed, 25 insertions(+), 15 deletions(-)", "diff": "diff --git a/drivers/bus/pci/pci_common_uio.c b/drivers/bus/pci/pci_common_uio.c\nindex 76c661f054..432d68b12c 100644\n--- a/drivers/bus/pci/pci_common_uio.c\n+++ b/drivers/bus/pci/pci_common_uio.c\n@@ -26,7 +26,7 @@ EAL_REGISTER_TAILQ(rte_uio_tailq)\n static int\n pci_uio_map_secondary(struct rte_pci_device *dev)\n {\n-\tint fd, i, j;\n+\tint fd, i, map_idx = 0, res_idx;\n \tstruct mapped_pci_resource *uio_res;\n \tstruct mapped_pci_res_list *uio_res_list =\n \t\t\tRTE_TAILQ_CAST(rte_uio_tailq.head, mapped_pci_res_list);\n@@ -37,41 +37,51 @@ pci_uio_map_secondary(struct rte_pci_device *dev)\n \t\tif (rte_pci_addr_cmp(&uio_res->pci_addr, &dev->addr))\n \t\t\tcontinue;\n \n-\t\tfor (i = 0; i != uio_res->nb_maps; i++) {\n+\t\t/* Map all BARs */\n+\t\tfor (res_idx = 0; res_idx != PCI_MAX_RESOURCE; res_idx++) {\n+\t\t\t /* skip empty BAR */\n+\t\t\tif (dev->mem_resource[res_idx].phys_addr == 0)\n+\t\t\t\tcontinue;\n+\n+\t\t\tif (map_idx >= uio_res->nb_maps)\n+\t\t\t\treturn -1;\n+\n \t\t\t/*\n \t\t\t * open devname, to mmap it\n \t\t\t */\n-\t\t\tfd = open(uio_res->maps[i].path, O_RDWR);\n+\t\t\tfd = open(uio_res->maps[map_idx].path, O_RDWR);\n \t\t\tif (fd < 0) {\n \t\t\t\tRTE_LOG(ERR, EAL, \"Cannot open %s: %s\\n\",\n-\t\t\t\t\tuio_res->maps[i].path, strerror(errno));\n+\t\t\t\t\tuio_res->maps[map_idx].path, strerror(errno));\n \t\t\t\treturn -1;\n \t\t\t}\n \n-\t\t\tvoid *mapaddr = pci_map_resource(uio_res->maps[i].addr,\n-\t\t\t\t\tfd, (off_t)uio_res->maps[i].offset,\n-\t\t\t\t\t(size_t)uio_res->maps[i].size, 0);\n+\t\t\tvoid *mapaddr = pci_map_resource(uio_res->maps[map_idx].addr,\n+\t\t\t\t\tfd, (off_t)uio_res->maps[map_idx].offset,\n+\t\t\t\t\t(size_t)uio_res->maps[map_idx].size, 0);\n \n \t\t\t/* fd is not needed in secondary process, close it */\n \t\t\tclose(fd);\n-\t\t\tif (mapaddr != uio_res->maps[i].addr) {\n+\t\t\tif (mapaddr != uio_res->maps[map_idx].addr) {\n \t\t\t\tRTE_LOG(ERR, EAL,\n \t\t\t\t\t\"Cannot mmap device resource file %s to address: %p\\n\",\n-\t\t\t\t\tuio_res->maps[i].path,\n-\t\t\t\t\tuio_res->maps[i].addr);\n+\t\t\t\t\tuio_res->maps[map_idx].path,\n+\t\t\t\t\tuio_res->maps[map_idx].addr);\n \t\t\t\tif (mapaddr != NULL) {\n \t\t\t\t\t/* unmap addrs correctly mapped */\n-\t\t\t\t\tfor (j = 0; j < i; j++)\n+\t\t\t\t\tfor (i = 0; i < map_idx; i++)\n \t\t\t\t\t\tpci_unmap_resource(\n-\t\t\t\t\t\t\tuio_res->maps[j].addr,\n-\t\t\t\t\t\t\t(size_t)uio_res->maps[j].size);\n+\t\t\t\t\t\t\tuio_res->maps[i].addr,\n+\t\t\t\t\t\t\t(size_t)uio_res->maps[i].size);\n \t\t\t\t\t/* unmap addr wrongly mapped */\n \t\t\t\t\tpci_unmap_resource(mapaddr,\n-\t\t\t\t\t\t(size_t)uio_res->maps[i].size);\n+\t\t\t\t\t\t(size_t)uio_res->maps[map_idx].size);\n \t\t\t\t}\n \t\t\t\treturn -1;\n \t\t\t}\n-\t\t\tdev->mem_resource[i].addr = mapaddr;\n+\t\t\tdev->mem_resource[res_idx].addr = mapaddr;\n+\n+\t\t\tmap_idx++;\n \t\t}\n \t\treturn 0;\n \t}\n", "prefixes": [ "v3", "1/2" ] }{ "id": 139524, "url": "