get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 82688,
    "url": "http://patchwork.dpdk.org/api/patches/82688/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20201029011322.39392-1-haiyue.wang@intel.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<20201029011322.39392-1-haiyue.wang@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20201029011322.39392-1-haiyue.wang@intel.com",
    "date": "2020-10-29T01:13:22",
    "name": "[v2] net/ice: fix DCF Rx segmentation fault",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "6884a56c152a375e4a10c2603bd5d219de39349f",
    "submitter": {
        "id": 1044,
        "url": "http://patchwork.dpdk.org/api/people/1044/?format=api",
        "name": "Wang, Haiyue",
        "email": "haiyue.wang@intel.com"
    },
    "delegate": {
        "id": 1540,
        "url": "http://patchwork.dpdk.org/api/users/1540/?format=api",
        "username": "qzhan15",
        "first_name": "Qi",
        "last_name": "Zhang",
        "email": "qi.z.zhang@intel.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20201029011322.39392-1-haiyue.wang@intel.com/mbox/",
    "series": [
        {
            "id": 13437,
            "url": "http://patchwork.dpdk.org/api/series/13437/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=13437",
            "date": "2020-10-29T01:13:22",
            "name": "[v2] net/ice: fix DCF Rx segmentation fault",
            "version": 2,
            "mbox": "http://patchwork.dpdk.org/series/13437/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/82688/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/82688/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 92A54A04B5;\n\tThu, 29 Oct 2020 02:26:07 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 7ABE466DA;\n\tThu, 29 Oct 2020 02:26:06 +0100 (CET)",
            "from mga04.intel.com (mga04.intel.com [192.55.52.120])\n by dpdk.org (Postfix) with ESMTP id 2BDFA5AA4\n for <dev@dpdk.org>; Thu, 29 Oct 2020 02:26:04 +0100 (CET)",
            "from fmsmga004.fm.intel.com ([10.253.24.48])\n by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 28 Oct 2020 18:26:02 -0700",
            "from npg-dpdk-haiyue-3.sh.intel.com ([10.67.118.151])\n by fmsmga004.fm.intel.com with ESMTP; 28 Oct 2020 18:25:59 -0700"
        ],
        "IronPort-SDR": [
            "\n LHd+vJ/jwqf80kp5FlwImsiK1zyvOLSaFz3DACpeLR0HmU9El+y1dXic87emXLe9FMgmktn5DD\n V4PjH0GhyY8w==",
            "\n iluYlDdYJKPQt9H1g3zpt5PftrxLQRIeVBOb+x3ggW23qaCFzYv7kTCvFfsOyR5GVrURdu80pi\n fs4wwe9bvseg=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6000,8403,9788\"; a=\"165773491\"",
            "E=Sophos;i=\"5.77,428,1596524400\"; d=\"scan'208\";a=\"165773491\"",
            "E=Sophos;i=\"5.77,428,1596524400\"; d=\"scan'208\";a=\"351234457\""
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "From": "Haiyue Wang <haiyue.wang@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "qi.z.zhang@intel.com, Haiyue Wang <haiyue.wang@intel.com>,\n Alvin Zhang <alvinx.zhang@intel.com>, Qiming Yang <qiming.yang@intel.com>,\n Jeff Guo <jia.guo@intel.com>",
        "Date": "Thu, 29 Oct 2020 09:13:22 +0800",
        "Message-Id": "<20201029011322.39392-1-haiyue.wang@intel.com>",
        "X-Mailer": "git-send-email 2.29.0",
        "In-Reply-To": "<20201028165545.20665-1-haiyue.wang@intel.com>",
        "References": "<20201028165545.20665-1-haiyue.wang@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v2] net/ice: fix DCF Rx segmentation fault",
        "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": "The initialization of selecting the handler for scalar Rx path FlexiMD\nfields extraction into mbuf is missed, it will cause segmentation fault\n(core dumped).\n\nAlso add the missed support to handle RXDID 16, which has RSS hash value\non Qword 1.\n\nFixes: 7a340b0b4e03 (\"net/ice: refactor Rx FlexiMD handling\")\n\nReported-by: Alvin Zhang <alvinx.zhang@intel.com>\nSigned-off-by: Haiyue Wang <haiyue.wang@intel.com>\n---\nv2: The RSS hash is wrong, fix it.\n---\n drivers/net/ice/ice_dcf.c  |  1 +\n drivers/net/ice/ice_rxtx.c | 28 +++++++++++++++++++++++++++-\n drivers/net/ice/ice_rxtx.h |  2 ++\n 3 files changed, 30 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/drivers/net/ice/ice_dcf.c b/drivers/net/ice/ice_dcf.c\nindex d20e2b3f48..44dbd3bb84 100644\n--- a/drivers/net/ice/ice_dcf.c\n+++ b/drivers/net/ice/ice_dcf.c\n@@ -899,6 +899,7 @@ ice_dcf_configure_queues(struct ice_dcf_hw *hw)\n \t\t\treturn -EINVAL;\n \t\t}\n #endif\n+\t\tice_select_rxd_to_pkt_fields_handler(rxq[i], vc_qp->rxq.rxdid);\n \t}\n \n \tmemset(&args, 0, sizeof(args));\ndiff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c\nindex f6291894cd..1bac643125 100644\n--- a/drivers/net/ice/ice_rxtx.c\n+++ b/drivers/net/ice/ice_rxtx.c\n@@ -43,6 +43,28 @@ ice_proto_xtr_type_to_rxdid(uint8_t xtr_type)\n \t\t\t\trxdid_map[xtr_type] : ICE_RXDID_COMMS_OVS;\n }\n \n+static inline void\n+ice_rxd_to_pkt_fields_by_comms_generic(__rte_unused struct ice_rx_queue *rxq,\n+\t\t\t\t       struct rte_mbuf *mb,\n+\t\t\t\t       volatile union ice_rx_flex_desc *rxdp)\n+{\n+\tvolatile struct ice_32b_rx_flex_desc_comms *desc =\n+\t\t\t(volatile struct ice_32b_rx_flex_desc_comms *)rxdp;\n+\tuint16_t stat_err = rte_le_to_cpu_16(desc->status_error0);\n+\n+\tif (likely(stat_err & (1 << ICE_RX_FLEX_DESC_STATUS0_RSS_VALID_S))) {\n+\t\tmb->ol_flags |= PKT_RX_RSS_HASH;\n+\t\tmb->hash.rss = rte_le_to_cpu_32(desc->rss_hash);\n+\t}\n+\n+#ifndef RTE_LIBRTE_ICE_16BYTE_RX_DESC\n+\tif (desc->flow_id != 0xFFFFFFFF) {\n+\t\tmb->ol_flags |= PKT_RX_FDIR | PKT_RX_FDIR_ID;\n+\t\tmb->hash.fdir.hi = rte_le_to_cpu_32(desc->flow_id);\n+\t}\n+#endif\n+}\n+\n static inline void\n ice_rxd_to_pkt_fields_by_comms_ovs(__rte_unused struct ice_rx_queue *rxq,\n \t\t\t\t   struct rte_mbuf *mb,\n@@ -148,7 +170,7 @@ ice_rxd_to_pkt_fields_by_comms_aux_v2(struct ice_rx_queue *rxq,\n #endif\n }\n \n-static void\n+void\n ice_select_rxd_to_pkt_fields_handler(struct ice_rx_queue *rxq, uint32_t rxdid)\n {\n \tswitch (rxdid) {\n@@ -182,6 +204,10 @@ ice_select_rxd_to_pkt_fields_handler(struct ice_rx_queue *rxq, uint32_t rxdid)\n \t\trxq->rxd_to_pkt_fields = ice_rxd_to_pkt_fields_by_comms_aux_v2;\n \t\tbreak;\n \n+\tcase ICE_RXDID_COMMS_GENERIC:\n+\t\trxq->rxd_to_pkt_fields = ice_rxd_to_pkt_fields_by_comms_generic;\n+\t\tbreak;\n+\n \tcase ICE_RXDID_COMMS_OVS:\n \t\trxq->rxd_to_pkt_fields = ice_rxd_to_pkt_fields_by_comms_ovs;\n \t\tbreak;\ndiff --git a/drivers/net/ice/ice_rxtx.h b/drivers/net/ice/ice_rxtx.h\nindex 23409d479a..6b16716063 100644\n--- a/drivers/net/ice/ice_rxtx.h\n+++ b/drivers/net/ice/ice_rxtx.h\n@@ -234,6 +234,8 @@ int ice_rx_descriptor_status(void *rx_queue, uint16_t offset);\n int ice_tx_descriptor_status(void *tx_queue, uint16_t offset);\n void ice_set_default_ptype_table(struct rte_eth_dev *dev);\n const uint32_t *ice_dev_supported_ptypes_get(struct rte_eth_dev *dev);\n+void ice_select_rxd_to_pkt_fields_handler(struct ice_rx_queue *rxq,\n+\t\t\t\t\t  uint32_t rxdid);\n \n int ice_rx_vec_dev_check(struct rte_eth_dev *dev);\n int ice_tx_vec_dev_check(struct rte_eth_dev *dev);\n",
    "prefixes": [
        "v2"
    ]
}