get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 80842,
    "url": "https://patches.dpdk.org/api/patches/80842/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20201015084305.48257-1-guinanx.sun@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": "<20201015084305.48257-1-guinanx.sun@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20201015084305.48257-1-guinanx.sun@intel.com",
    "date": "2020-10-15T08:43:05",
    "name": "[v4] net/iavf: fix adding multicast MAC address",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "5439365bad61e389a8eba1003a5e791550c6fa5e",
    "submitter": {
        "id": 1476,
        "url": "https://patches.dpdk.org/api/people/1476/?format=api",
        "name": "Guinan Sun",
        "email": "guinanx.sun@intel.com"
    },
    "delegate": {
        "id": 1540,
        "url": "https://patches.dpdk.org/api/users/1540/?format=api",
        "username": "qzhan15",
        "first_name": "Qi",
        "last_name": "Zhang",
        "email": "qi.z.zhang@intel.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20201015084305.48257-1-guinanx.sun@intel.com/mbox/",
    "series": [
        {
            "id": 12993,
            "url": "https://patches.dpdk.org/api/series/12993/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=12993",
            "date": "2020-10-15T08:43:05",
            "name": "[v4] net/iavf: fix adding multicast MAC address",
            "version": 4,
            "mbox": "https://patches.dpdk.org/series/12993/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/80842/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/80842/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 14597A04DB;\n\tThu, 15 Oct 2020 10:54:42 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id D41311DD3C;\n\tThu, 15 Oct 2020 10:54:40 +0200 (CEST)",
            "from mga03.intel.com (mga03.intel.com [134.134.136.65])\n by dpdk.org (Postfix) with ESMTP id B2E041DD3B\n for <dev@dpdk.org>; Thu, 15 Oct 2020 10:54:37 +0200 (CEST)",
            "from orsmga005.jf.intel.com ([10.7.209.41])\n by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 15 Oct 2020 01:54:36 -0700",
            "from unknown (HELO localhost.localdomain) ([10.239.255.52])\n by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 15 Oct 2020 01:54:34 -0700"
        ],
        "IronPort-SDR": [
            "\n 9abMUvRSrvOD7lNZEET+3oNsZz80ENcMH+murPXLBFz60eU4s8lUbU94cT/Cr7zz7NGMl0Kjnc\n fQGVoxUYCB4Q==",
            "\n mDQxeJiojmjMYcrQmg96uzK8J9gZGn2m2uSDaAaFisma+TC3eS5u/HKBoOFmjXgucqd1NYKe2Q\n geuk3Jt1biWQ=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6000,8403,9774\"; a=\"166358334\"",
            "E=Sophos;i=\"5.77,378,1596524400\"; d=\"scan'208\";a=\"166358334\"",
            "E=Sophos;i=\"5.77,378,1596524400\"; d=\"scan'208\";a=\"531172135\""
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "From": "Guinan Sun <guinanx.sun@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "Beilei Xing <beilei.xing@intel.com>, Qi Zhang <qi.z.zhang@intel.com>,\n Jingjing Wu <jingjing.wu@intel.com>, Guinan Sun <guinanx.sun@intel.com>",
        "Date": "Thu, 15 Oct 2020 08:43:05 +0000",
        "Message-Id": "<20201015084305.48257-1-guinanx.sun@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20201015020204.12658-1-guinanx.sun@intel.com>",
        "References": "<20201015020204.12658-1-guinanx.sun@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v4] net/iavf: fix adding multicast MAC address",
        "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": "When the multicast address list is added, it will flush\nprevious addresses first, and then add new ones.\nIf the number of multicast address in the list exceeds\nthe upper limit, it will cause failure, then need to\nroll back previous addresses. This patch fixes the issue.\n\nFixes: 05e4c3aff35f (\"net/iavf: support multicast configuration\")\n\nSigned-off-by: Guinan Sun <guinanx.sun@intel.com>\nTested-by: Peng Yuan <yuan.peng@intel.com>\nAcked-by: Beilei Xing <beilei.xing@intel.com>\n---\nv4:\n* modify commit message\n* add Acked-by\nv3:\n* modify commit message\nv2:\n* modify the variable name\n---\n drivers/net/iavf/iavf_ethdev.c | 30 ++++++++++++++++++++++--------\n drivers/net/iavf/iavf_vchnl.c  |  3 ---\n 2 files changed, 22 insertions(+), 11 deletions(-)",
    "diff": "diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c\nindex e68e3bc71..8a7577230 100644\n--- a/drivers/net/iavf/iavf_ethdev.c\n+++ b/drivers/net/iavf/iavf_ethdev.c\n@@ -164,7 +164,14 @@ iavf_set_mc_addr_list(struct rte_eth_dev *dev,\n \tstruct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);\n \tstruct iavf_adapter *adapter =\n \t\tIAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);\n-\tint err;\n+\tint err, ret;\n+\n+\tif (mc_addrs_num > IAVF_NUM_MACADDR_MAX) {\n+\t\tPMD_DRV_LOG(ERR,\n+\t\t\t    \"can't add more than a limited number (%u) of addresses.\",\n+\t\t\t    (uint32_t)IAVF_NUM_MACADDR_MAX);\n+\t\treturn -EINVAL;\n+\t}\n \n \t/* flush previous addresses */\n \terr = iavf_add_del_mc_addr_list(adapter, vf->mc_addrs, vf->mc_addrs_num,\n@@ -172,17 +179,24 @@ iavf_set_mc_addr_list(struct rte_eth_dev *dev,\n \tif (err)\n \t\treturn err;\n \n-\tvf->mc_addrs_num = 0;\n-\n \t/* add new ones */\n \terr = iavf_add_del_mc_addr_list(adapter, mc_addrs, mc_addrs_num, true);\n-\tif (err)\n-\t\treturn err;\n \n-\tvf->mc_addrs_num = mc_addrs_num;\n-\tmemcpy(vf->mc_addrs, mc_addrs, mc_addrs_num * sizeof(*mc_addrs));\n+\tif (err) {\n+\t\t/* if adding mac address list fails, should add the previous\n+\t\t * addresses back.\n+\t\t */\n+\t\tret = iavf_add_del_mc_addr_list(adapter, vf->mc_addrs,\n+\t\t\t\t\t\tvf->mc_addrs_num, true);\n+\t\tif (ret)\n+\t\t\treturn ret;\n+\t} else {\n+\t\tvf->mc_addrs_num = mc_addrs_num;\n+\t\tmemcpy(vf->mc_addrs,\n+\t\t       mc_addrs, mc_addrs_num * sizeof(*mc_addrs));\n+\t}\n \n-\treturn 0;\n+\treturn err;\n }\n \n static int\ndiff --git a/drivers/net/iavf/iavf_vchnl.c b/drivers/net/iavf/iavf_vchnl.c\nindex db0b76876..a2295f879 100644\n--- a/drivers/net/iavf/iavf_vchnl.c\n+++ b/drivers/net/iavf/iavf_vchnl.c\n@@ -1107,9 +1107,6 @@ iavf_add_del_mc_addr_list(struct iavf_adapter *adapter,\n \tif (mc_addrs == NULL || mc_addrs_num == 0)\n \t\treturn 0;\n \n-\tif (mc_addrs_num > IAVF_NUM_MACADDR_MAX)\n-\t\treturn -EINVAL;\n-\n \tlist = (struct virtchnl_ether_addr_list *)cmd_buffer;\n \tlist->vsi_id = vf->vsi_res->vsi_id;\n \tlist->num_elements = mc_addrs_num;\n",
    "prefixes": [
        "v4"
    ]
}