get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 139517,
    "url": "https://patches.dpdk.org/api/patches/139517/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20240419031226.1191069-3-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": "<20240419031226.1191069-3-chaoyong.he@corigine.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20240419031226.1191069-3-chaoyong.he@corigine.com",
    "date": "2024-04-19T03:12:20",
    "name": "[2/8] net/nfp: fix configuration BAR problem",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "31b0bf299b62a47ffe42df97b660f4b072e5b3fe",
    "submitter": {
        "id": 2554,
        "url": "https://patches.dpdk.org/api/people/2554/?format=api",
        "name": "Chaoyong He",
        "email": "chaoyong.he@corigine.com"
    },
    "delegate": {
        "id": 319,
        "url": "https://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20240419031226.1191069-3-chaoyong.he@corigine.com/mbox/",
    "series": [
        {
            "id": 31786,
            "url": "https://patches.dpdk.org/api/series/31786/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=31786",
            "date": "2024-04-19T03:12:18",
            "name": "refactor logic to support secondary process",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/31786/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/139517/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/139517/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 1F39343EA9;\n\tFri, 19 Apr 2024 05:13:09 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id E4C314067B;\n\tFri, 19 Apr 2024 05:12:58 +0200 (CEST)",
            "from NAM12-BN8-obe.outbound.protection.outlook.com\n (mail-bn8nam12on2093.outbound.protection.outlook.com [40.107.237.93])\n by mails.dpdk.org (Postfix) with ESMTP id 0C9C9402E1;\n Fri, 19 Apr 2024 05:12:56 +0200 (CEST)",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5)\n by BY1PR13MB6310.namprd13.prod.outlook.com (2603:10b6:a03:52e::10)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.38; Fri, 19 Apr\n 2024 03:12:53 +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:12:52 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=ZdLKvKCiDMm3G7H7rx2Rr6xDRC6liO+ra8GtplNCBQnGJR67HxeFdC6IvX2X9WFkp1KISyqx0oF1MAcuA/9II6LeAJYCqJkilTLY2SmF11JS7cbGwcDHUmE2tcWLENGuLuFbkooRoy3iqXSaXS+KEbuh79K0rGP415F4/kGaenOyh+ckTBvj6g2psa/xer4tJkzApmpao5fLpH6j5NDwgZWSe9rTHmXeNfsPN5NZQex0ZSF53UEhKxHz0Asj1IYyNvbceZChzKlJJclvz8eeAJPCWQPtMYe8goB4nwYXTzXzLCTkIZMoN3/KtKlq8vVSBv+lMBu9P5idw44lXbJHaQ==",
        "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=+XFsOUIpDJOabUFDJrulPSjJb4fVEk763f6hmQD4NNk=;\n b=chXq48s8qt7Q+FspX7Rd3gLRXc6BblC2WuOBVEI31cHhCWNS1jQWxheys8eKTlkvUkQH3UykV/GH5lOXlc/31jKd31FuoSWABETYlRNqHc04IiPS3E+JqoDtMthVbjK5R9OfeeXWi3S/iXNSElqU/T0FOa10UintAsVdR9v+hxT+vGBDc5Q6+3zxQdvn0zy/uGYaMcx0wv8Za+S4vx7cZCCJ5TZWyGget/5iE98xvNGAJ6nkuDSpasL7v3VyUsezBEgZszSzUDeieUTNSWrbS/aiNHbnJjlgiiSNGF4+TRe5hpHECP3K2gycmNIGNTYImJ4wDAZ5pFSHzXXQTa1IwA==",
        "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=+XFsOUIpDJOabUFDJrulPSjJb4fVEk763f6hmQD4NNk=;\n b=sTLZWJ3RZv4jSnsAD2a3TKOe9BqxV3wwGL6Vswdg2y6ALplprp8iKASTQs0YZXDsDEcG+YxX4DLqKulPYDh7FS+ZDm+pDuHcM7r7dvWDc9m3AiVrRBw2JGP2GqNm90M9uXM/d8jhllYpl7sGNAJM0x7ANV5sKUR5kLQOBBjxbOY=",
        "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, Chaoyong He <chaoyong.he@corigine.com>,\n stable@dpdk.org, Long Wu <long.wu@corigine.com>,\n Peng Zhang <peng.zhang@corigine.com>",
        "Subject": "[PATCH 2/8] net/nfp: fix configuration BAR problem",
        "Date": "Fri, 19 Apr 2024 11:12:20 +0800",
        "Message-Id": "<20240419031226.1191069-3-chaoyong.he@corigine.com>",
        "X-Mailer": "git-send-email 2.39.1",
        "In-Reply-To": "<20240419031226.1191069-1-chaoyong.he@corigine.com>",
        "References": "<20240419031226.1191069-1-chaoyong.he@corigine.com>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "SI2PR01CA0044.apcprd01.prod.exchangelabs.com\n (2603:1096:4:193::8) 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_|BY1PR13MB6310:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "1092ee2f-4874-415d-cbbd-08dc601e99f1",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n w89l5aAYJN5Y3EW7u64A1OXXay0Po/VFUXqpTq3bjkcicF/U8CMCF+g7wPtdBS3MelpEPKxcLiDvYnIa3LZk+//JiCtihgIfOgzba9Mr6l7KHotkdWtgTWAi6CsXECR4+qucd3zBisds2smNGDtb9fz0+OIeqL9BYltoaAieeFwXLPs86ODKn2FsLjAXpCDPFYoIjLkQGFYff846SQWLQcLbXS6g1YeAuggpk39Wi9iUc8qUq8SDlH21kbRZMLWKp1bWAxnPjhrcG86wX3LLf3bKXchFYz+bqRxJYK2p1GXmCFKtOhjfYZLW4c1w2jkSGy0mTt77i1royoB8AuRSV45vlY5iFiKoV7S7fZHYbKRGWvl8dCaDLSLNYR94FeqZJmMpzqxZbfjqU/omGsZpoqK6EgmRjIHtUCqS+abVvnDeEmVutmLIJOfHeHsltEbCx9MO/gBdNfrLCn67zJDlzPrZaTdTcteh+UDP/BtOSRiCBOyoF/UPrkXNIof14y8q8Nw5XkOrBelNqPgrPFeHr+STovGpLMrWs/CQPaF88wVEtkZliESyTEstaec874cdqJwYfLfaJVLDzisDcaQnuQ41y9P0DabxNRJXFE3ccOAoIURhNtDjkCAx0Pw7LTDV+/JKvXRt04+hlt87HIhKRQVcvPJvMSR1b4FgwVsGdS+MHP2dQpdMEKBWl1xWbuOvTJYGcmCVEEdSABFNuMVSzC2FUvPYvd25X+CFBjLG2ZnUU7e93V0eik8H+YQfxvyVUkd8alhrTpJjKbhVuz1q7EmYxqjb0XGyUDd2/i4Fn1HkPOIPDxjo7RMaj1MgxWABDJa1W3R7Pw9jY+mU8bHhAB8oHd4sXoV4s/VgIfbDfb1DxfoJCwC2krmvCI5ZxeayPrShRcC+xvEuCQ3xnf9oPkLsFSKoTSibmB2dTd/23N8nT+4VFx1mj1anKkmEppDdQZzlty2R1VHqTId2mVgQW2jpoz9EZetsOD805NTGgEjUYe7AAfLxy89BjenYInqUMrJuJbQCX4Ngbweovk3IuwZkhXJIw926kVc9z5ybyrRpjUrJenmWaA4xmPb8sxxWAOvi/ZAlV2if8emaWX+GsayGi4W6iMcpXJxp0vo8D7ogtxbL1jsFRk9/JLvvx2ecLuxWSdOWLBVTcIak4+qLXNFYAjyKt/PmrIfmBcuHGycvTw3tffSdZZgC1KIBVK/kgXLM2g6XOk9ERbKSDjmJI+ktkH6Ngt9BmQgYxwG7cpbmsrO1KeZjUweXy7Gevg8Q3uIQ2lYfXmPcl335iRpekVUln8Og08+S69luXHLjgg0aaX9rGYg0bxMnepGyia8UmegKfvWnHPr1iG7135Q3dg==",
        "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)(366007)(52116005)(376005)(1800799015)(38350700005); DIR:OUT;\n SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n wiwfEJX2I0QKQaQDdvtzTUEA5GoTuGE7fUUmsCGmSEyBHCQVC3qcB8RtpN7azh5aXcuJ4c8KzC+R/+7g+eY91kuhGNtdE79FvU7za7nbsu4NiNDYi9Jdv47ZFaF/tjgl5fXPcMiXtuy8zFQ9hzAkWTY/p/xgsr54g7tx4uJ5sosG7MAs0aUVfgOVPtE/ncp8I/UM2w9SBEUDe/ZBR7jRJwbLW4XbRbkv2ffHY9vQ6lQGzP3fS8WjbR0PCi9Cd0ii4bB/DgB7OOEJUPZ+I/etiX1DmcMc/js3xPM5oPypq5cgOUUb3yBa32zoeAMLtM2y1IjCAHVXrInZk2q2ep+VhN1a8hJaqbC9bxDGXOQ9bTdQWqcVrJvoTQ0kQb7ZA1cG/cePZjqsPbJQpLoczUZv6BlGW5Yuo43sMaGvaW6bUcF+PQ+bsNxySSx5xJo7m8oZZ62ek9/eASHj5wdkXcA6D5rjtROb/mxgxhJNDNFrxUGs5cxUyzNPnkysvN9n5cVxsdc8zqmYCVIEM0Y7fGctNnUEY7WBXzQxuLieqY4CRluIu4L0/Pypq+Yeh1nATPm6VuFq9BWMit+VwZfTKUOAPvxmI+9Ogjwfs7Tqr6gWEUgr+PXRpttPhad592ZFMW2jHcyavmmZ4RiYUpvEmfQGsaKQvePifGqoNxe2sO1UpkIsJv8fRfzL2oEdp/fCcWBwvchptBLExaMTZe5qjCM/PIa0++7YfqMKnZ90B50pRSjZh4FjtIig2CDnCYbAIGZ8XS8f8zkwHfhYlcFZ+cYspltUBw5wyLLHkQSuVW2cyDU5IzaU6ts3ROYHZkR4sCpOM3pIt1GGPQNp6ClbIV9lvkfJmZFQBAiXSp2LLBSzSq1nb59RTXfBWdYNWGlb8GG6/tvXPNSaiFggkv4xuyP8ZVH0JHLlTsrH7PKiUkqfTw0ykYPdHfxx7CzzR/QJtxWZ47D9x4cePHAyHSc2Z1/hy6S2a+fxWSsIS8aa+NLK4iFAfqxM05A+9AWr8e+BIuTuNLJA8u1uotuCfMziwDlE0OU7vQ737YgRf7XUN2Ygkv/n3G/vu3NS1xJ8y9ZuqVD4jIF4lkovUoqpwpMJT/CNCuO1KxpexLRuuqr+0Z5g5S9ICWEoRAXF9oowLxsv1dPfCNY0i8SbGWl31U/lOG3WeJHTExVIz6BFTRlB/0xzAFtaCt62jaSvSYIQYAXsAyl6FY+e2hnt3sP7XTFmYg5hoTo9+0iYT3IscwJbpTZkH3K5zOH4XSHPP90raEsIkMK265AqWjOXib5oAvmy6g7tmWUwRl9TzpOrMTbQDKw9nbRFmKpB6ZduCyI12Xl+HCOtrf2E/H1S9m/+dhOty9kBKYUH66CBaCCqtmKrM8LSe3GqJ3apP2Y+sChgAy+qUNiIEHVaBcYGSB853wLTyJsHztldaRSJcTDVtYfzUjA/pJb0RezEoMVUEZX78J9TRPAHZ3CDVgUdDudiOAHIDAhAF0BvhpAeLH0FhgDqrM+Azk7U2xQutKhHRRdz7jIOWah8Yk6erGaWyjsJy0RexStUpRygUON+svp9rhcgQAr1qfIncJiaKqjqIJ7i2Nqb1fsWlhMqwziN1TP2Sv6ZLFQRuA==",
        "X-OriginatorOrg": "corigine.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 1092ee2f-4874-415d-cbbd-08dc601e99f1",
        "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:12:52.9091 (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 71tTtzlNF2e0DqHTVwL9gUdIQuyYSc0gVsPO8rwT6lI35nKOfutl/yHIL4ZjxcQcZ1vHekWb5iBGJxu7kioWvQjHc9EvelC6D7BroUolnSw=",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BY1PR13MB6310",
        "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": "All the configuration bars are sit in an array, and the initial logic\nsort all the configuration BAR from small to large based on size and index,\nwhich result all valid bars are behind the invalid bars.\nBut the BAR alloc logic search this array from the very beginning and\nonly try limited times (equal to the valid bars number).\nIt's ok for primary process because which has enough valid bars, and\nfinally it can find one to use.\n\nBut for secondary process and run with igb_uio driver, the valid bars\nare very limit, and it can not find one, and the logic will fail.\n\nFix this by drop the sort logic, and search the bar array from the end\nto begin.\n\nFixes: 1fbe51cd9c3a (\"net/nfp: extend usage of BAR from 8 to 24\")\nCc: stable@dpdk.org\n\nSigned-off-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/net/nfp/nfpcore/nfp6000_pcie.c | 34 +++++++++-----------------\n 1 file changed, 11 insertions(+), 23 deletions(-)",
    "diff": "diff --git a/drivers/net/nfp/nfpcore/nfp6000_pcie.c b/drivers/net/nfp/nfpcore/nfp6000_pcie.c\nindex a6fd89b6c8..ef1ffd6d01 100644\n--- a/drivers/net/nfp/nfpcore/nfp6000_pcie.c\n+++ b/drivers/net/nfp/nfpcore/nfp6000_pcie.c\n@@ -263,19 +263,6 @@ nfp_bitsize_calc(uint64_t mask)\n \treturn bit_size;\n }\n \n-static int\n-nfp_cmp_bars(const void *ptr_a,\n-\t\tconst void *ptr_b)\n-{\n-\tconst struct nfp_bar *a = ptr_a;\n-\tconst struct nfp_bar *b = ptr_b;\n-\n-\tif (a->bitsize == b->bitsize)\n-\t\treturn a->index - b->index;\n-\telse\n-\t\treturn a->bitsize - b->bitsize;\n-}\n-\n static bool\n nfp_bars_for_secondary(uint32_t index)\n {\n@@ -383,9 +370,6 @@ nfp_enable_bars(struct nfp_pcie_user *nfp)\n \tif (nfp_bar_write(nfp, bar, barcfg_msix_general) < 0)\n \t\treturn -EIO;\n \n-\t/* Sort bars by bit size - use the smallest possible first. */\n-\tqsort(&nfp->bar[0], nfp->bars, sizeof(nfp->bar[0]), nfp_cmp_bars);\n-\n \treturn 0;\n }\n \n@@ -466,16 +450,18 @@ find_matching_bar(struct nfp_pcie_user *nfp,\n \t\tint width)\n {\n \tuint32_t n;\n+\tuint32_t index;\n \n-\tfor (n = 0; n < nfp->bars; n++) {\n-\t\tstruct nfp_bar *bar = &nfp->bar[n];\n+\tfor (n = RTE_DIM(nfp->bar) ; n > 0; n--) {\n+\t\tindex = n - 1;\n+\t\tstruct nfp_bar *bar = &nfp->bar[index];\n \n \t\tif (bar->lock)\n \t\t\tcontinue;\n \n \t\tif (matching_bar_exist(bar, target, action, token,\n \t\t\t\toffset, size, width))\n-\t\t\treturn n;\n+\t\t\treturn index;\n \t}\n \n \treturn -1;\n@@ -493,10 +479,12 @@ find_unused_bar_noblock(struct nfp_pcie_user *nfp,\n {\n \tint ret;\n \tuint32_t n;\n+\tuint32_t index;\n \tconst struct nfp_bar *bar;\n \n-\tfor (n = 0; n < nfp->bars; n++) {\n-\t\tbar = &nfp->bar[n];\n+\tfor (n = RTE_DIM(nfp->bar); n > 0; n--) {\n+\t\tindex = n - 1;\n+\t\tbar = &nfp->bar[index];\n \n \t\tif (bar->bitsize == 0)\n \t\t\tcontinue;\n@@ -508,7 +496,7 @@ find_unused_bar_noblock(struct nfp_pcie_user *nfp,\n \t\t\tcontinue;\n \n \t\tif (!bar->lock)\n-\t\t\treturn n;\n+\t\t\treturn index;\n \t}\n \n \treturn -EAGAIN;\n@@ -561,7 +549,7 @@ nfp_disable_bars(struct nfp_pcie_user *nfp)\n \tuint32_t i;\n \tstruct nfp_bar *bar;\n \n-\tfor (i = 0; i < nfp->bars; i++) {\n+\tfor (i = 0; i < RTE_DIM(nfp->bar); i++) {\n \t\tbar = &nfp->bar[i];\n \t\tif (bar->iomem != NULL) {\n \t\t\tbar->iomem = NULL;\n",
    "prefixes": [
        "2/8"
    ]
}