Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/678521/?format=api
{ "id": 678521, "url": "http://patchwork.ozlabs.org/api/patches/678521/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1475685046-16900-5-git-send-email-bimmy.pujari@intel.com/", "project": { "id": 46, "url": "http://patchwork.ozlabs.org/api/projects/46/?format=api", "name": "Intel Wired Ethernet development", "link_name": "intel-wired-lan", "list_id": "intel-wired-lan.osuosl.org", "list_email": "intel-wired-lan@osuosl.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<1475685046-16900-5-git-send-email-bimmy.pujari@intel.com>", "list_archive_url": null, "date": "2016-10-05T16:30:34", "name": "[next,S49-V2,04/15] i40e: refactor i40e_put_mac_in_vlan to avoid changing f->vlan", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "4dfeceea6c9b7eb38236834faa697461f1515a73", "submitter": { "id": 68919, "url": "http://patchwork.ozlabs.org/api/people/68919/?format=api", "name": "Pujari, Bimmy", "email": "bimmy.pujari@intel.com" }, "delegate": { "id": 68, "url": "http://patchwork.ozlabs.org/api/users/68/?format=api", "username": "jtkirshe", "first_name": "Jeff", "last_name": "Kirsher", "email": "jeffrey.t.kirsher@intel.com" }, "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1475685046-16900-5-git-send-email-bimmy.pujari@intel.com/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/678521/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/678521/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<intel-wired-lan-bounces@lists.osuosl.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Delivered-To": [ "patchwork-incoming@bilbo.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Received": [ "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3sq1XT3GDFz9s9Y\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 6 Oct 2016 03:32:24 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 3E412C236D;\n\tWed, 5 Oct 2016 16:32:23 +0000 (UTC)", "from fraxinus.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id 5OAbFkfqZy_S; Wed, 5 Oct 2016 16:32:22 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 66439C239D;\n\tWed, 5 Oct 2016 16:32:16 +0000 (UTC)", "from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\n\tby ash.osuosl.org (Postfix) with ESMTP id 2233E1CE508\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 5 Oct 2016 16:32:13 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 1C22992130\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 5 Oct 2016 16:32:13 +0000 (UTC)", "from hemlock.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id Wh6xp2+-8gBH for <intel-wired-lan@lists.osuosl.org>;\n\tWed, 5 Oct 2016 16:32:10 +0000 (UTC)", "from mga05.intel.com (mga05.intel.com [192.55.52.43])\n\tby hemlock.osuosl.org (Postfix) with ESMTPS id 2D36E8B0BC\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 5 Oct 2016 16:32:10 +0000 (UTC)", "from fmsmga005.fm.intel.com ([10.253.24.32])\n\tby fmsmga105.fm.intel.com with ESMTP; 05 Oct 2016 09:32:09 -0700", "from bimmy.jf.intel.com (HELO bimmy.linux1.jf.intel.com)\n\t([134.134.2.167])\n\tby fmsmga005.fm.intel.com with ESMTP; 05 Oct 2016 09:32:09 -0700" ], "X-Virus-Scanned": [ "amavisd-new at osuosl.org", "amavisd-new at osuosl.org" ], "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6", "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.31,449,1473145200\"; d=\"scan'208\";a=\"16526366\"", "From": "Bimmy Pujari <bimmy.pujari@intel.com>", "To": "intel-wired-lan@lists.osuosl.org", "Date": "Wed, 5 Oct 2016 09:30:34 -0700", "Message-Id": "<1475685046-16900-5-git-send-email-bimmy.pujari@intel.com>", "X-Mailer": "git-send-email 2.4.11", "In-Reply-To": "<1475685046-16900-1-git-send-email-bimmy.pujari@intel.com>", "References": "<1475685046-16900-1-git-send-email-bimmy.pujari@intel.com>", "Subject": "[Intel-wired-lan] [next PATCH S49-V2 04/15] i40e: refactor\n\ti40e_put_mac_in_vlan to avoid changing f->vlan", "X-BeenThere": "intel-wired-lan@lists.osuosl.org", "X-Mailman-Version": "2.1.18-1", "Precedence": "list", "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n\t<intel-wired-lan.lists.osuosl.org>", "List-Unsubscribe": "<http://lists.osuosl.org/mailman/options/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@lists.osuosl.org?subject=unsubscribe>", "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>", "List-Post": "<mailto:intel-wired-lan@lists.osuosl.org>", "List-Help": "<mailto:intel-wired-lan-request@lists.osuosl.org?subject=help>", "List-Subscribe": "<http://lists.osuosl.org/mailman/listinfo/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@lists.osuosl.org?subject=subscribe>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Errors-To": "intel-wired-lan-bounces@lists.osuosl.org", "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@lists.osuosl.org>" }, "content": "From: Jacob Keller <jacob.e.keller@intel.com>\n\nWhen a pvid has been assigned to a VSI, the function\ni40e_put_mac_in_vlan arbitrarily modifies all filters\nto have the same vlan. This is obviously incorrect\nbecause it could be modifying active filters without\nputting them into the NEW state. The correct method\nis to remove then re-add filters which is already done\nin the code where we assign the PVID.\n\nFix this issue and a few other minor nits at the same\ntime. First, when we have a PVID don't even bother\nlooping and simply add the filter with the PVID immediately.\n\nIn the case of the loop, we now can remove several checks.\nWe also don't need to use i40e_find_filter first before\ncalling i40e_add_filter, since i40e_add_filter implicitely\ndoes a lookup already.\n\nFinally, update the return semantics of this function so\nthat on failure to add a filter it returns NULL, but on\nsuccess, it returns the last filter added. Otherwise,\nwe're just returning the last filter in the list. An\nalternative fix might be to return 0 or an error code,\nbut this is pretty invasive to every call site.\n\nSigned-off-by: Jacob Keller <jacob.e.keller@intel.com>\nChange-ID: I2325dfd843aec76d89fb0d7cb0e7c4f290a34840\n---\n drivers/net/ethernet/intel/i40e/i40e_main.c | 25 +++++++++++++------------\n 1 file changed, 13 insertions(+), 12 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c\nindex 5908f7d..9a18c67 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_main.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c\n@@ -1312,27 +1312,28 @@ void i40e_del_filter(struct i40e_vsi *vsi, const u8 *macaddr, s16 vlan)\n * @vsi: the VSI to be searched\n * @macaddr: the mac address to be filtered\n *\n- * Goes through all the macvlan filters and adds a\n- * macvlan filter for each unique vlan that already exists\n+ * Goes through all the macvlan filters and adds a macvlan filter for each\n+ * unique vlan that already exists. If a PVID has been assigned, instead only\n+ * add the macaddr to that VLAN.\n *\n- * Returns first filter found on success, else NULL\n+ * Returns last filter added on success, else NULL\n **/\n struct i40e_mac_filter *i40e_put_mac_in_vlan(struct i40e_vsi *vsi,\n \t\t\t\t\t const u8 *macaddr)\n {\n-\tstruct i40e_mac_filter *f;\n+\tstruct i40e_mac_filter *f, *add = NULL;\n+\n+\tif (vsi->info.pvid)\n+\t\treturn i40e_add_filter(vsi, macaddr,\n+\t\t\t\t le16_to_cpu(vsi->info.pvid));\n \n \tlist_for_each_entry(f, &vsi->mac_filter_list, list) {\n-\t\tif (vsi->info.pvid)\n-\t\t\tf->vlan = le16_to_cpu(vsi->info.pvid);\n-\t\tif (!i40e_find_filter(vsi, macaddr, f->vlan)) {\n-\t\t\tif (!i40e_add_filter(vsi, macaddr, f->vlan))\n-\t\t\t\treturn NULL;\n-\t\t}\n+\t\tadd = i40e_add_filter(vsi, macaddr, f->vlan);\n+\t\tif (!add)\n+\t\t\treturn NULL;\n \t}\n \n-\treturn list_first_entry_or_null(&vsi->mac_filter_list,\n-\t\t\t\t\tstruct i40e_mac_filter, list);\n+\treturn add;\n }\n \n /**\n", "prefixes": [ "next", "S49-V2", "04/15" ] }