get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 109665,
    "url": "https://patches.dpdk.org/api/patches/109665/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20220413160932.2074781-32-kevinx.liu@intel.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": "<20220413160932.2074781-32-kevinx.liu@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220413160932.2074781-32-kevinx.liu@intel.com",
    "date": "2022-04-13T16:09:30",
    "name": "[v2,31/33] net/ice: fix DCF ACL flow engine",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "e17b3c5af5da06324a712e21debe080bcb6d431d",
    "submitter": {
        "id": 2440,
        "url": "https://patches.dpdk.org/api/people/2440/?format=api",
        "name": "Kevin Liu",
        "email": "kevinx.liu@intel.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20220413160932.2074781-32-kevinx.liu@intel.com/mbox/",
    "series": [
        {
            "id": 22497,
            "url": "https://patches.dpdk.org/api/series/22497/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=22497",
            "date": "2022-04-13T16:08:59",
            "name": "support full function of DCF",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/22497/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/109665/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/109665/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 B9BB1A0508;\n\tWed, 13 Apr 2022 10:14:25 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 9ED7942855;\n\tWed, 13 Apr 2022 10:12:06 +0200 (CEST)",
            "from mga01.intel.com (mga01.intel.com [192.55.52.88])\n by mails.dpdk.org (Postfix) with ESMTP id 29F4142869\n for <dev@dpdk.org>; Wed, 13 Apr 2022 10:12:03 +0200 (CEST)",
            "from orsmga006.jf.intel.com ([10.7.209.51])\n by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 13 Apr 2022 01:12:03 -0700",
            "from intel-cd-odc-kevin.cd.intel.com ([10.240.178.195])\n by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 13 Apr 2022 01:12:00 -0700"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1649837524; x=1681373524;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=nQQnY1ahkr9CHA4kMGvk++J2qLxA6EMDciLvNmNIlsc=;\n b=lBVqMNgtcNPXaWU7bo6ttWpbfc2iKtMQXjtLjtNF5rvyGgsshQWlAJqA\n XRBjITW9qWg+b6v19UzuaRTZRRcTlVm6qnf2qOnojbck3+NXGggTPKR77\n DySlqD6xu+8fMvdhnZwgcYj3GldMfbyuSgYxCf2L6Pyg/6DCvGlmZksRs\n CNI8xsZf1E2AI85bOnw300OX1NwyD8X1hdP6jgHar7gK9ZHGlnn4XnolO\n BcvEcbquOJjbCEwntHu3h3z8nSJX7hFVYSI9/U5mTwW4N681aAfwfskM+\n mw7PN/4cwODgwvZ8haRTY1XzVm10lashVkCvjr1QqTa3cVi4RMbIjI+dT Q==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6400,9594,10315\"; a=\"287630151\"",
            "E=Sophos;i=\"5.90,256,1643702400\"; d=\"scan'208\";a=\"287630151\"",
            "E=Sophos;i=\"5.90,256,1643702400\"; d=\"scan'208\";a=\"526847933\""
        ],
        "From": "Kevin Liu <kevinx.liu@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "qiming.yang@intel.com, qi.z.zhang@intel.com, stevex.yang@intel.com,\n Alvin Zhang <alvinx.zhang@intel.com>, Kevin Liu <kevinx.liu@intel.com>",
        "Subject": "[PATCH v2 31/33] net/ice: fix DCF ACL flow engine",
        "Date": "Wed, 13 Apr 2022 16:09:30 +0000",
        "Message-Id": "<20220413160932.2074781-32-kevinx.liu@intel.com>",
        "X-Mailer": "git-send-email 2.33.1",
        "In-Reply-To": "<20220413160932.2074781-1-kevinx.liu@intel.com>",
        "References": "<20220407105706.18889-1-kevinx.liu@intel.com>\n <20220413160932.2074781-1-kevinx.liu@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "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: Alvin Zhang <alvinx.zhang@intel.com>\n\nACL is not a necessary feature for DCF, it may not be supported by\nthe ice kernel driver, so in this patch the program does not return\nthe ACL initiation fails to high level functions, as substitute it\nprints some error logs, cleans the related resources and unregisters\nthe ACL engine.\n\nFixes: 40d466fa9f76 (\"net/ice: support ACL filter in DCF\")\n\nSigned-off-by: Alvin Zhang <alvinx.zhang@intel.com>\nSigned-off-by: Kevin Liu <kevinx.liu@intel.com>\n---\n drivers/net/ice/ice_acl_filter.c   | 20 ++++++++++++++----\n drivers/net/ice/ice_generic_flow.c | 34 +++++++++++++++++++++++-------\n 2 files changed, 42 insertions(+), 12 deletions(-)",
    "diff": "diff --git a/drivers/net/ice/ice_acl_filter.c b/drivers/net/ice/ice_acl_filter.c\nindex 8fe6f5aeb0..20a1f86c43 100644\n--- a/drivers/net/ice/ice_acl_filter.c\n+++ b/drivers/net/ice/ice_acl_filter.c\n@@ -56,6 +56,8 @@ ice_pattern_match_item ice_acl_pattern[] = {\n \t{pattern_eth_ipv4_sctp,\tICE_ACL_INSET_ETH_IPV4_SCTP,\tICE_INSET_NONE,\tICE_INSET_NONE},\n };\n \n+static void ice_acl_prof_free(struct ice_hw *hw);\n+\n static int\n ice_acl_prof_alloc(struct ice_hw *hw)\n {\n@@ -1007,17 +1009,27 @@ ice_acl_init(struct ice_adapter *ad)\n \n \tret = ice_acl_setup(pf);\n \tif (ret)\n-\t\treturn ret;\n+\t\tgoto deinit_acl;\n \n \tret = ice_acl_bitmap_init(pf);\n \tif (ret)\n-\t\treturn ret;\n+\t\tgoto deinit_acl;\n \n \tret = ice_acl_prof_init(pf);\n \tif (ret)\n-\t\treturn ret;\n+\t\tgoto deinit_acl;\n \n-\treturn ice_register_parser(parser, ad);\n+\tret = ice_register_parser(parser, ad);\n+\tif (ret)\n+\t\tgoto deinit_acl;\n+\n+\treturn 0;\n+\n+deinit_acl:\n+\tice_deinit_acl(pf);\n+\tice_acl_prof_free(hw);\n+\tPMD_DRV_LOG(ERR, \"ACL init failed, may not supported!\");\n+\treturn ret;\n }\n \n static void\ndiff --git a/drivers/net/ice/ice_generic_flow.c b/drivers/net/ice/ice_generic_flow.c\nindex 6663a85ed0..e9e4d776b2 100644\n--- a/drivers/net/ice/ice_generic_flow.c\n+++ b/drivers/net/ice/ice_generic_flow.c\n@@ -1864,6 +1864,12 @@ ice_register_flow_engine(struct ice_flow_engine *engine)\n \tTAILQ_INSERT_TAIL(&engine_list, engine, node);\n }\n \n+static void\n+ice_unregister_flow_engine(struct ice_flow_engine *engine)\n+{\n+\tTAILQ_REMOVE(&engine_list, engine, node);\n+}\n+\n int\n ice_flow_init(struct ice_adapter *ad)\n {\n@@ -1887,9 +1893,18 @@ ice_flow_init(struct ice_adapter *ad)\n \n \t\tret = engine->init(ad);\n \t\tif (ret) {\n-\t\t\tPMD_INIT_LOG(ERR, \"Failed to initialize engine %d\",\n-\t\t\t\t\tengine->type);\n-\t\t\treturn ret;\n+\t\t\t/**\n+\t\t\t * ACL may not supported in kernel driver,\n+\t\t\t * so just unregister the engine.\n+\t\t\t */\n+\t\t\tif (engine->type == ICE_FLOW_ENGINE_ACL) {\n+\t\t\t\tice_unregister_flow_engine(engine);\n+\t\t\t} else {\n+\t\t\t\tPMD_INIT_LOG(ERR,\n+\t\t\t\t\t     \"Failed to initialize engine %d\",\n+\t\t\t\t\t     engine->type);\n+\t\t\t\treturn ret;\n+\t\t\t}\n \t\t}\n \t}\n \treturn 0;\n@@ -1976,7 +1991,7 @@ ice_register_parser(struct ice_flow_parser *parser,\n \n \tlist = ice_get_parser_list(parser, ad);\n \tif (list == NULL)\n-\t\treturn -EINVAL;\n+\t\tgoto err;\n \n \tif (ad->devargs.pipe_mode_support) {\n \t\tTAILQ_INSERT_TAIL(list, parser_node, node);\n@@ -1988,7 +2003,7 @@ ice_register_parser(struct ice_flow_parser *parser,\n \t\t\t\t    ICE_FLOW_ENGINE_ACL) {\n \t\t\t\t\tTAILQ_INSERT_AFTER(list, existing_node,\n \t\t\t\t\t\t\t   parser_node, node);\n-\t\t\t\t\tgoto DONE;\n+\t\t\t\t\treturn 0;\n \t\t\t\t}\n \t\t\t}\n \t\t\tTAILQ_INSERT_HEAD(list, parser_node, node);\n@@ -1999,7 +2014,7 @@ ice_register_parser(struct ice_flow_parser *parser,\n \t\t\t\t    ICE_FLOW_ENGINE_SWITCH) {\n \t\t\t\t\tTAILQ_INSERT_AFTER(list, existing_node,\n \t\t\t\t\t\t\t   parser_node, node);\n-\t\t\t\t\tgoto DONE;\n+\t\t\t\t\treturn 0;\n \t\t\t\t}\n \t\t\t}\n \t\t\tTAILQ_INSERT_HEAD(list, parser_node, node);\n@@ -2008,11 +2023,14 @@ ice_register_parser(struct ice_flow_parser *parser,\n \t\t} else if (parser->engine->type == ICE_FLOW_ENGINE_ACL) {\n \t\t\tTAILQ_INSERT_HEAD(list, parser_node, node);\n \t\t} else {\n-\t\t\treturn -EINVAL;\n+\t\t\tgoto err;\n \t\t}\n \t}\n-DONE:\n \treturn 0;\n+err:\n+\trte_free(parser_node);\n+\tPMD_DRV_LOG(ERR, \"%s failed.\", __func__);\n+\treturn -EINVAL;\n }\n \n void\n",
    "prefixes": [
        "v2",
        "31/33"
    ]
}