get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 62425,
    "url": "http://patches.dpdk.org/api/patches/62425/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1572940915-29416-8-git-send-email-viacheslavo@mellanox.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": "<1572940915-29416-8-git-send-email-viacheslavo@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1572940915-29416-8-git-send-email-viacheslavo@mellanox.com",
    "date": "2019-11-05T08:01:42",
    "name": "[07/20] net/mlx5: rename structure and function",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "259cc9b63fb066e6273d6f0a8d2ea051d45899f5",
    "submitter": {
        "id": 1102,
        "url": "http://patches.dpdk.org/api/people/1102/?format=api",
        "name": "Slava Ovsiienko",
        "email": "viacheslavo@mellanox.com"
    },
    "delegate": {
        "id": 3268,
        "url": "http://patches.dpdk.org/api/users/3268/?format=api",
        "username": "rasland",
        "first_name": "Raslan",
        "last_name": "Darawsheh",
        "email": "rasland@nvidia.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1572940915-29416-8-git-send-email-viacheslavo@mellanox.com/mbox/",
    "series": [
        {
            "id": 7242,
            "url": "http://patches.dpdk.org/api/series/7242/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=7242",
            "date": "2019-11-05T08:01:35",
            "name": "net/mlx5: implement extensive metadata feature",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/7242/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/62425/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/62425/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 C541BA0352;\n\tTue,  5 Nov 2019 09:03:03 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id B92B85B3E;\n\tTue,  5 Nov 2019 09:02:15 +0100 (CET)",
            "from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129])\n by dpdk.org (Postfix) with ESMTP id 71B665B32\n for <dev@dpdk.org>; Tue,  5 Nov 2019 09:02:09 +0100 (CET)",
            "from Internal Mail-Server by MTLPINE1 (envelope-from\n viacheslavo@mellanox.com)\n with ESMTPS (AES256-SHA encrypted); 5 Nov 2019 10:02:08 +0200",
            "from pegasus11.mtr.labs.mlnx (pegasus11.mtr.labs.mlnx\n [10.210.16.104])\n by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id xA5828VS026482;\n Tue, 5 Nov 2019 10:02:08 +0200",
            "from pegasus11.mtr.labs.mlnx (localhost [127.0.0.1])\n by pegasus11.mtr.labs.mlnx (8.14.7/8.14.7) with ESMTP id xA5828iW030768;\n Tue, 5 Nov 2019 08:02:08 GMT",
            "(from viacheslavo@localhost)\n by pegasus11.mtr.labs.mlnx (8.14.7/8.14.7/Submit) id xA5827Li030767;\n Tue, 5 Nov 2019 08:02:07 GMT"
        ],
        "X-Authentication-Warning": "pegasus11.mtr.labs.mlnx: viacheslavo set sender to\n viacheslavo@mellanox.com using -f",
        "From": "Viacheslav Ovsiienko <viacheslavo@mellanox.com>",
        "To": "dev@dpdk.org",
        "Cc": "matan@mellanox.com, rasland@mellanox.com, thomas@monjalon.net,\n orika@mellanox.com, Yongseok Koh <yskoh@mellanox.com>",
        "Date": "Tue,  5 Nov 2019 08:01:42 +0000",
        "Message-Id": "<1572940915-29416-8-git-send-email-viacheslavo@mellanox.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1572940915-29416-1-git-send-email-viacheslavo@mellanox.com>",
        "References": "<1572940915-29416-1-git-send-email-viacheslavo@mellanox.com>",
        "Subject": "[dpdk-dev] [PATCH 07/20] net/mlx5: rename structure and function",
        "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": "There are some renaming:\n- in the DV flow engine overall: flow_d_* -> flow_dv_*\n- in flow_dv_translate(): res -> mhdr_res\n\nSigned-off-by: Yongseok Koh <yskoh@mellanox.com>\nSigned-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>\nAcked-by: Matan Azrad <matan@mellanox.com>\n---\n drivers/net/mlx5/mlx5_flow_dv.c | 151 ++++++++++++++++++++--------------------\n 1 file changed, 76 insertions(+), 75 deletions(-)",
    "diff": "diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c\nindex eb7e481..853e879 100644\n--- a/drivers/net/mlx5/mlx5_flow_dv.c\n+++ b/drivers/net/mlx5/mlx5_flow_dv.c\n@@ -183,7 +183,7 @@ struct field_modify_info modify_tcp[] = {\n  *   Pointer to the rte_eth_dev structure.\n  */\n static void\n-flow_d_shared_lock(struct rte_eth_dev *dev)\n+flow_dv_shared_lock(struct rte_eth_dev *dev)\n {\n \tstruct mlx5_priv *priv = dev->data->dev_private;\n \tstruct mlx5_ibv_shared *sh = priv->sh;\n@@ -198,7 +198,7 @@ struct field_modify_info modify_tcp[] = {\n }\n \n static void\n-flow_d_shared_unlock(struct rte_eth_dev *dev)\n+flow_dv_shared_unlock(struct rte_eth_dev *dev)\n {\n \tstruct mlx5_priv *priv = dev->data->dev_private;\n \tstruct mlx5_ibv_shared *sh = priv->sh;\n@@ -5597,7 +5597,8 @@ struct field_modify_info modify_tcp[] = {\n }\n \n /**\n- * Fill the flow with DV spec.\n+ * Fill the flow with DV spec, lock free\n+ * (mutex should be acquired by caller).\n  *\n  * @param[in] dev\n  *   Pointer to rte_eth_dev structure.\n@@ -5616,12 +5617,12 @@ struct field_modify_info modify_tcp[] = {\n  *   0 on success, a negative errno value otherwise and rte_errno is set.\n  */\n static int\n-flow_dv_translate(struct rte_eth_dev *dev,\n-\t\t  struct mlx5_flow *dev_flow,\n-\t\t  const struct rte_flow_attr *attr,\n-\t\t  const struct rte_flow_item items[],\n-\t\t  const struct rte_flow_action actions[],\n-\t\t  struct rte_flow_error *error)\n+__flow_dv_translate(struct rte_eth_dev *dev,\n+\t\t    struct mlx5_flow *dev_flow,\n+\t\t    const struct rte_flow_attr *attr,\n+\t\t    const struct rte_flow_item items[],\n+\t\t    const struct rte_flow_action actions[],\n+\t\t    struct rte_flow_error *error)\n {\n \tstruct mlx5_priv *priv = dev->data->dev_private;\n \tstruct rte_flow *flow = dev_flow->flow;\n@@ -5636,7 +5637,7 @@ struct field_modify_info modify_tcp[] = {\n \t};\n \tint actions_n = 0;\n \tbool actions_end = false;\n-\tstruct mlx5_flow_dv_modify_hdr_resource res = {\n+\tstruct mlx5_flow_dv_modify_hdr_resource mhdr_res = {\n \t\t.ft_type = attr->egress ? MLX5DV_FLOW_TABLE_TYPE_NIC_TX :\n \t\t\t\t\t  MLX5DV_FLOW_TABLE_TYPE_NIC_RX\n \t};\n@@ -5656,7 +5657,7 @@ struct field_modify_info modify_tcp[] = {\n \t\treturn ret;\n \tdev_flow->group = table;\n \tif (attr->transfer)\n-\t\tres.ft_type = MLX5DV_FLOW_TABLE_TYPE_FDB;\n+\t\tmhdr_res.ft_type = MLX5DV_FLOW_TABLE_TYPE_FDB;\n \tif (priority == MLX5_FLOW_PRIO_RSVD)\n \t\tpriority = priv->config.flow_prio - 1;\n \tfor (; !actions_end ; actions++) {\n@@ -5805,7 +5806,7 @@ struct field_modify_info modify_tcp[] = {\n \t\t\tmlx5_update_vlan_vid_pcp(actions, &vlan);\n \t\t\t/* If no VLAN push - this is a modify header action */\n \t\t\tif (flow_dv_convert_action_modify_vlan_vid\n-\t\t\t\t\t\t\t(&res, actions, error))\n+\t\t\t\t\t\t(&mhdr_res, actions, error))\n \t\t\t\treturn -rte_errno;\n \t\t\taction_flags |= MLX5_FLOW_ACTION_OF_SET_VLAN_VID;\n \t\t\tbreak;\n@@ -5904,8 +5905,8 @@ struct field_modify_info modify_tcp[] = {\n \t\t\tbreak;\n \t\tcase RTE_FLOW_ACTION_TYPE_SET_MAC_SRC:\n \t\tcase RTE_FLOW_ACTION_TYPE_SET_MAC_DST:\n-\t\t\tif (flow_dv_convert_action_modify_mac(&res, actions,\n-\t\t\t\t\t\t\t      error))\n+\t\t\tif (flow_dv_convert_action_modify_mac\n+\t\t\t\t\t(&mhdr_res, actions, error))\n \t\t\t\treturn -rte_errno;\n \t\t\taction_flags |= actions->type ==\n \t\t\t\t\tRTE_FLOW_ACTION_TYPE_SET_MAC_SRC ?\n@@ -5914,8 +5915,8 @@ struct field_modify_info modify_tcp[] = {\n \t\t\tbreak;\n \t\tcase RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC:\n \t\tcase RTE_FLOW_ACTION_TYPE_SET_IPV4_DST:\n-\t\t\tif (flow_dv_convert_action_modify_ipv4(&res, actions,\n-\t\t\t\t\t\t\t       error))\n+\t\t\tif (flow_dv_convert_action_modify_ipv4\n+\t\t\t\t\t(&mhdr_res, actions, error))\n \t\t\t\treturn -rte_errno;\n \t\t\taction_flags |= actions->type ==\n \t\t\t\t\tRTE_FLOW_ACTION_TYPE_SET_IPV4_SRC ?\n@@ -5924,8 +5925,8 @@ struct field_modify_info modify_tcp[] = {\n \t\t\tbreak;\n \t\tcase RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC:\n \t\tcase RTE_FLOW_ACTION_TYPE_SET_IPV6_DST:\n-\t\t\tif (flow_dv_convert_action_modify_ipv6(&res, actions,\n-\t\t\t\t\t\t\t       error))\n+\t\t\tif (flow_dv_convert_action_modify_ipv6\n+\t\t\t\t\t(&mhdr_res, actions, error))\n \t\t\t\treturn -rte_errno;\n \t\t\taction_flags |= actions->type ==\n \t\t\t\t\tRTE_FLOW_ACTION_TYPE_SET_IPV6_SRC ?\n@@ -5934,9 +5935,9 @@ struct field_modify_info modify_tcp[] = {\n \t\t\tbreak;\n \t\tcase RTE_FLOW_ACTION_TYPE_SET_TP_SRC:\n \t\tcase RTE_FLOW_ACTION_TYPE_SET_TP_DST:\n-\t\t\tif (flow_dv_convert_action_modify_tp(&res, actions,\n-\t\t\t\t\t\t\t     items, &flow_attr,\n-\t\t\t\t\t\t\t     error))\n+\t\t\tif (flow_dv_convert_action_modify_tp\n+\t\t\t\t\t(&mhdr_res, actions, items,\n+\t\t\t\t\t &flow_attr, error))\n \t\t\t\treturn -rte_errno;\n \t\t\taction_flags |= actions->type ==\n \t\t\t\t\tRTE_FLOW_ACTION_TYPE_SET_TP_SRC ?\n@@ -5944,23 +5945,22 @@ struct field_modify_info modify_tcp[] = {\n \t\t\t\t\tMLX5_FLOW_ACTION_SET_TP_DST;\n \t\t\tbreak;\n \t\tcase RTE_FLOW_ACTION_TYPE_DEC_TTL:\n-\t\t\tif (flow_dv_convert_action_modify_dec_ttl(&res, items,\n-\t\t\t\t\t\t\t\t  &flow_attr,\n-\t\t\t\t\t\t\t\t  error))\n+\t\t\tif (flow_dv_convert_action_modify_dec_ttl\n+\t\t\t\t\t(&mhdr_res, items, &flow_attr, error))\n \t\t\t\treturn -rte_errno;\n \t\t\taction_flags |= MLX5_FLOW_ACTION_DEC_TTL;\n \t\t\tbreak;\n \t\tcase RTE_FLOW_ACTION_TYPE_SET_TTL:\n-\t\t\tif (flow_dv_convert_action_modify_ttl(&res, actions,\n-\t\t\t\t\t\t\t     items, &flow_attr,\n-\t\t\t\t\t\t\t     error))\n+\t\t\tif (flow_dv_convert_action_modify_ttl\n+\t\t\t\t\t(&mhdr_res, actions, items,\n+\t\t\t\t\t &flow_attr, error))\n \t\t\t\treturn -rte_errno;\n \t\t\taction_flags |= MLX5_FLOW_ACTION_SET_TTL;\n \t\t\tbreak;\n \t\tcase RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ:\n \t\tcase RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ:\n-\t\t\tif (flow_dv_convert_action_modify_tcp_seq(&res, actions,\n-\t\t\t\t\t\t\t\t  error))\n+\t\t\tif (flow_dv_convert_action_modify_tcp_seq\n+\t\t\t\t\t(&mhdr_res, actions, error))\n \t\t\t\treturn -rte_errno;\n \t\t\taction_flags |= actions->type ==\n \t\t\t\t\tRTE_FLOW_ACTION_TYPE_INC_TCP_SEQ ?\n@@ -5970,8 +5970,8 @@ struct field_modify_info modify_tcp[] = {\n \n \t\tcase RTE_FLOW_ACTION_TYPE_INC_TCP_ACK:\n \t\tcase RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK:\n-\t\t\tif (flow_dv_convert_action_modify_tcp_ack(&res, actions,\n-\t\t\t\t\t\t\t\t  error))\n+\t\t\tif (flow_dv_convert_action_modify_tcp_ack\n+\t\t\t\t\t(&mhdr_res, actions, error))\n \t\t\t\treturn -rte_errno;\n \t\t\taction_flags |= actions->type ==\n \t\t\t\t\tRTE_FLOW_ACTION_TYPE_INC_TCP_ACK ?\n@@ -5979,14 +5979,14 @@ struct field_modify_info modify_tcp[] = {\n \t\t\t\t\tMLX5_FLOW_ACTION_DEC_TCP_ACK;\n \t\t\tbreak;\n \t\tcase MLX5_RTE_FLOW_ACTION_TYPE_TAG:\n-\t\t\tif (flow_dv_convert_action_set_reg(&res, actions,\n-\t\t\t\t\t\t\t   error))\n+\t\t\tif (flow_dv_convert_action_set_reg\n+\t\t\t\t\t(&mhdr_res, actions, error))\n \t\t\t\treturn -rte_errno;\n \t\t\taction_flags |= MLX5_FLOW_ACTION_SET_TAG;\n \t\t\tbreak;\n \t\tcase MLX5_RTE_FLOW_ACTION_TYPE_COPY_MREG:\n-\t\t\tif (flow_dv_convert_action_copy_mreg(dev, &res,\n-\t\t\t\t\t\t\t     actions, error))\n+\t\t\tif (flow_dv_convert_action_copy_mreg\n+\t\t\t\t\t(dev, &mhdr_res, actions, error))\n \t\t\t\treturn -rte_errno;\n \t\t\taction_flags |= MLX5_FLOW_ACTION_SET_TAG;\n \t\t\tbreak;\n@@ -5995,9 +5995,7 @@ struct field_modify_info modify_tcp[] = {\n \t\t\tif (action_flags & MLX5_FLOW_MODIFY_HDR_ACTIONS) {\n \t\t\t\t/* create modify action if needed. */\n \t\t\t\tif (flow_dv_modify_hdr_resource_register\n-\t\t\t\t\t\t\t\t(dev, &res,\n-\t\t\t\t\t\t\t\t dev_flow,\n-\t\t\t\t\t\t\t\t error))\n+\t\t\t\t\t(dev, &mhdr_res, dev_flow, error))\n \t\t\t\t\treturn -rte_errno;\n \t\t\t\tdev_flow->dv.actions[modify_action_position] =\n \t\t\t\t\tdev_flow->dv.modify_hdr->verbs_action;\n@@ -6215,7 +6213,8 @@ struct field_modify_info modify_tcp[] = {\n }\n \n /**\n- * Apply the flow to the NIC.\n+ * Apply the flow to the NIC, lock free,\n+ * (mutex should be acquired by caller).\n  *\n  * @param[in] dev\n  *   Pointer to the Ethernet device structure.\n@@ -6228,8 +6227,8 @@ struct field_modify_info modify_tcp[] = {\n  *   0 on success, a negative errno value otherwise and rte_errno is set.\n  */\n static int\n-flow_dv_apply(struct rte_eth_dev *dev, struct rte_flow *flow,\n-\t      struct rte_flow_error *error)\n+__flow_dv_apply(struct rte_eth_dev *dev, struct rte_flow *flow,\n+\t\tstruct rte_flow_error *error)\n {\n \tstruct mlx5_flow_dv *dv;\n \tstruct mlx5_flow *dev_flow;\n@@ -6527,6 +6526,7 @@ struct field_modify_info modify_tcp[] = {\n \n /**\n  * Remove the flow from the NIC but keeps it in memory.\n+ * Lock free, (mutex should be acquired by caller).\n  *\n  * @param[in] dev\n  *   Pointer to Ethernet device.\n@@ -6534,7 +6534,7 @@ struct field_modify_info modify_tcp[] = {\n  *   Pointer to flow structure.\n  */\n static void\n-flow_dv_remove(struct rte_eth_dev *dev, struct rte_flow *flow)\n+__flow_dv_remove(struct rte_eth_dev *dev, struct rte_flow *flow)\n {\n \tstruct mlx5_flow_dv *dv;\n \tstruct mlx5_flow *dev_flow;\n@@ -6562,6 +6562,7 @@ struct field_modify_info modify_tcp[] = {\n \n /**\n  * Remove the flow from the NIC and the memory.\n+ * Lock free, (mutex should be acquired by caller).\n  *\n  * @param[in] dev\n  *   Pointer to the Ethernet device structure.\n@@ -6569,13 +6570,13 @@ struct field_modify_info modify_tcp[] = {\n  *   Pointer to flow structure.\n  */\n static void\n-flow_dv_destroy(struct rte_eth_dev *dev, struct rte_flow *flow)\n+__flow_dv_destroy(struct rte_eth_dev *dev, struct rte_flow *flow)\n {\n \tstruct mlx5_flow *dev_flow;\n \n \tif (!flow)\n \t\treturn;\n-\tflow_dv_remove(dev, flow);\n+\t__flow_dv_remove(dev, flow);\n \tif (flow->counter) {\n \t\tflow_dv_counter_release(dev, flow->counter);\n \t\tflow->counter = NULL;\n@@ -6686,69 +6687,69 @@ struct field_modify_info modify_tcp[] = {\n }\n \n /*\n- * Mutex-protected thunk to flow_dv_translate().\n+ * Mutex-protected thunk to lock-free  __flow_dv_translate().\n  */\n static int\n-flow_d_translate(struct rte_eth_dev *dev,\n-\t\t struct mlx5_flow *dev_flow,\n-\t\t const struct rte_flow_attr *attr,\n-\t\t const struct rte_flow_item items[],\n-\t\t const struct rte_flow_action actions[],\n-\t\t struct rte_flow_error *error)\n+flow_dv_translate(struct rte_eth_dev *dev,\n+\t\t  struct mlx5_flow *dev_flow,\n+\t\t  const struct rte_flow_attr *attr,\n+\t\t  const struct rte_flow_item items[],\n+\t\t  const struct rte_flow_action actions[],\n+\t\t  struct rte_flow_error *error)\n {\n \tint ret;\n \n-\tflow_d_shared_lock(dev);\n-\tret = flow_dv_translate(dev, dev_flow, attr, items, actions, error);\n-\tflow_d_shared_unlock(dev);\n+\tflow_dv_shared_lock(dev);\n+\tret = __flow_dv_translate(dev, dev_flow, attr, items, actions, error);\n+\tflow_dv_shared_unlock(dev);\n \treturn ret;\n }\n \n /*\n- * Mutex-protected thunk to flow_dv_apply().\n+ * Mutex-protected thunk to lock-free  __flow_dv_apply().\n  */\n static int\n-flow_d_apply(struct rte_eth_dev *dev,\n-\t     struct rte_flow *flow,\n-\t     struct rte_flow_error *error)\n+flow_dv_apply(struct rte_eth_dev *dev,\n+\t      struct rte_flow *flow,\n+\t      struct rte_flow_error *error)\n {\n \tint ret;\n \n-\tflow_d_shared_lock(dev);\n-\tret = flow_dv_apply(dev, flow, error);\n-\tflow_d_shared_unlock(dev);\n+\tflow_dv_shared_lock(dev);\n+\tret = __flow_dv_apply(dev, flow, error);\n+\tflow_dv_shared_unlock(dev);\n \treturn ret;\n }\n \n /*\n- * Mutex-protected thunk to flow_dv_remove().\n+ * Mutex-protected thunk to lock-free __flow_dv_remove().\n  */\n static void\n-flow_d_remove(struct rte_eth_dev *dev, struct rte_flow *flow)\n+flow_dv_remove(struct rte_eth_dev *dev, struct rte_flow *flow)\n {\n-\tflow_d_shared_lock(dev);\n-\tflow_dv_remove(dev, flow);\n-\tflow_d_shared_unlock(dev);\n+\tflow_dv_shared_lock(dev);\n+\t__flow_dv_remove(dev, flow);\n+\tflow_dv_shared_unlock(dev);\n }\n \n /*\n- * Mutex-protected thunk to flow_dv_destroy().\n+ * Mutex-protected thunk to lock-free __flow_dv_destroy().\n  */\n static void\n-flow_d_destroy(struct rte_eth_dev *dev, struct rte_flow *flow)\n+flow_dv_destroy(struct rte_eth_dev *dev, struct rte_flow *flow)\n {\n-\tflow_d_shared_lock(dev);\n-\tflow_dv_destroy(dev, flow);\n-\tflow_d_shared_unlock(dev);\n+\tflow_dv_shared_lock(dev);\n+\t__flow_dv_destroy(dev, flow);\n+\tflow_dv_shared_unlock(dev);\n }\n \n const struct mlx5_flow_driver_ops mlx5_flow_dv_drv_ops = {\n \t.validate = flow_dv_validate,\n \t.prepare = flow_dv_prepare,\n-\t.translate = flow_d_translate,\n-\t.apply = flow_d_apply,\n-\t.remove = flow_d_remove,\n-\t.destroy = flow_d_destroy,\n+\t.translate = flow_dv_translate,\n+\t.apply = flow_dv_apply,\n+\t.remove = flow_dv_remove,\n+\t.destroy = flow_dv_destroy,\n \t.query = flow_dv_query,\n };\n \n",
    "prefixes": [
        "07/20"
    ]
}