get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 71249,
    "url": "http://patches.dpdk.org/api/patches/71249/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200611084330.18301-11-qi.z.zhang@intel.com/",
    "project": {
        "id": 1,
        "url": "http://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": "<20200611084330.18301-11-qi.z.zhang@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200611084330.18301-11-qi.z.zhang@intel.com",
    "date": "2020-06-11T08:43:30",
    "name": "[10/10] net/ice/base: replace RSS profile locks",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "4099544ec8a42d4091d98f12baafb687b4c606c9",
    "submitter": {
        "id": 504,
        "url": "http://patches.dpdk.org/api/people/504/?format=api",
        "name": "Qi Zhang",
        "email": "qi.z.zhang@intel.com"
    },
    "delegate": {
        "id": 31221,
        "url": "http://patches.dpdk.org/api/users/31221/?format=api",
        "username": "yexl",
        "first_name": "xiaolong",
        "last_name": "ye",
        "email": "xiaolong.ye@intel.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20200611084330.18301-11-qi.z.zhang@intel.com/mbox/",
    "series": [
        {
            "id": 10404,
            "url": "http://patches.dpdk.org/api/series/10404/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=10404",
            "date": "2020-06-11T08:43:20",
            "name": "net/ice: base code update for 20.08 batch 2",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/10404/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/71249/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/71249/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 dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 368C0A00C5;\n\tThu, 11 Jun 2020 10:41:09 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 0AB031BEE0;\n\tThu, 11 Jun 2020 10:39:55 +0200 (CEST)",
            "from mga17.intel.com (mga17.intel.com [192.55.52.151])\n by dpdk.org (Postfix) with ESMTP id 065A51BED9\n for <dev@dpdk.org>; Thu, 11 Jun 2020 10:39:52 +0200 (CEST)",
            "from orsmga004.jf.intel.com ([10.7.209.38])\n by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 11 Jun 2020 01:39:53 -0700",
            "from dpdk51.sh.intel.com ([10.67.111.82])\n by orsmga004.jf.intel.com with ESMTP; 11 Jun 2020 01:39:51 -0700"
        ],
        "IronPort-SDR": [
            "\n kcpbLiVWlUM45CLQITxXUz9b8k+7Vdn/cL4/taQEMTft13rGMogTo+G2qOLeARN2S/UOVIg3CH\n BxbBG1b3GqUQ==",
            "\n lN1AVRZM5SdHv1mQpeMYQiEVeKtVxEp2pypgFDGx5QHDxNYy+jHCUbvN/IjqP1XtGJd9KwjGn+\n DMuVKdA6TbyA=="
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.73,499,1583222400\"; d=\"scan'208\";a=\"419039215\"",
        "From": "Qi Zhang <qi.z.zhang@intel.com>",
        "To": "qiming.yang@intel.com",
        "Cc": "dev@dpdk.org, xiaolong.ye@intel.com, Qi Zhang <qi.z.zhang@intel.com>,\n Vignesh Sridhar <vignesh.sridhar@intel.com>,\n Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>",
        "Date": "Thu, 11 Jun 2020 16:43:30 +0800",
        "Message-Id": "<20200611084330.18301-11-qi.z.zhang@intel.com>",
        "X-Mailer": "git-send-email 2.13.6",
        "In-Reply-To": "<20200611084330.18301-1-qi.z.zhang@intel.com>",
        "References": "<20200611084330.18301-1-qi.z.zhang@intel.com>",
        "Subject": "[dpdk-dev] [PATCH 10/10] net/ice/base: replace RSS profile locks",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "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",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Replacing flow profile locks with RSS profile locks in the function to\nremove all RSS rules for a given VSI. This is to align the locks used\nfor RSS rule addition to VSI and removal during VSI teardown to avoid\na race condition owing to several iterations of the above operations.\nIn function to get RSS rules for given VSI and protocol header replacing\nthe pointer reference of the RSS entry with a copy of hash value to\nensure thread safety.\n\nSigned-off-by: Vignesh Sridhar <vignesh.sridhar@intel.com>\nSigned-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>\nSigned-off-by: Qi Zhang <qi.z.zhang@intel.com>\n---\n drivers/net/ice/base/ice_flow.c | 13 +++++++------\n 1 file changed, 7 insertions(+), 6 deletions(-)",
    "diff": "diff --git a/drivers/net/ice/base/ice_flow.c b/drivers/net/ice/base/ice_flow.c\nindex fb0e34e5f..6adcda844 100644\n--- a/drivers/net/ice/base/ice_flow.c\n+++ b/drivers/net/ice/base/ice_flow.c\n@@ -3314,7 +3314,7 @@ enum ice_status ice_rem_vsi_rss_cfg(struct ice_hw *hw, u16 vsi_handle)\n \tif (LIST_EMPTY(&hw->fl_profs[blk]))\n \t\treturn ICE_SUCCESS;\n \n-\tice_acquire_lock(&hw->fl_profs_locks[blk]);\n+\tice_acquire_lock(&hw->rss_locks);\n \tLIST_FOR_EACH_ENTRY_SAFE(p, t, &hw->fl_profs[blk], ice_flow_prof,\n \t\t\t\t l_entry)\n \t\tif (ice_is_bit_set(p->vsis, vsi_handle)) {\n@@ -3323,12 +3323,12 @@ enum ice_status ice_rem_vsi_rss_cfg(struct ice_hw *hw, u16 vsi_handle)\n \t\t\t\tbreak;\n \n \t\t\tif (!ice_is_any_bit_set(p->vsis, ICE_MAX_VSI)) {\n-\t\t\t\tstatus = ice_flow_rem_prof_sync(hw, blk, p);\n+\t\t\t\tstatus = ice_flow_rem_prof(hw, blk, p->id);\n \t\t\t\tif (status)\n \t\t\t\t\tbreak;\n \t\t\t}\n \t\t}\n-\tice_release_lock(&hw->fl_profs_locks[blk]);\n+\tice_release_lock(&hw->rss_locks);\n \n \treturn status;\n }\n@@ -3820,7 +3820,8 @@ enum ice_status ice_replay_rss_cfg(struct ice_hw *hw, u16 vsi_handle)\n  */\n u64 ice_get_rss_cfg(struct ice_hw *hw, u16 vsi_handle, u32 hdrs)\n {\n-\tstruct ice_rss_cfg *r, *rss_cfg = NULL;\n+\tu64 rss_hash = ICE_HASH_INVALID;\n+\tstruct ice_rss_cfg *r;\n \n \t/* verify if the protocol header is non zero and VSI is valid */\n \tif (hdrs == ICE_FLOW_SEG_HDR_NONE || !ice_is_vsi_valid(hw, vsi_handle))\n@@ -3831,10 +3832,10 @@ u64 ice_get_rss_cfg(struct ice_hw *hw, u16 vsi_handle, u32 hdrs)\n \t\t\t    ice_rss_cfg, l_entry)\n \t\tif (ice_is_bit_set(r->vsis, vsi_handle) &&\n \t\t    r->packet_hdr == hdrs) {\n-\t\t\trss_cfg = r;\n+\t\t\trss_hash = r->hashed_flds;\n \t\t\tbreak;\n \t\t}\n \tice_release_lock(&hw->rss_locks);\n \n-\treturn rss_cfg ? rss_cfg->hashed_flds : ICE_HASH_INVALID;\n+\treturn rss_hash;\n }\n",
    "prefixes": [
        "10/10"
    ]
}