Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/744487/?format=api
{ "id": 744487, "url": "http://patchwork.ozlabs.org/api/patches/744487/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20170328182754.3607.1614.stgit@localhost6.localdomain6/", "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": "<20170328182754.3607.1614.stgit@localhost6.localdomain6>", "list_archive_url": null, "date": "2017-03-28T18:27:54", "name": "ixgbe: clean macvlan MAC filter table on VF reset", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "d624a5a32f27216965afaf523373643884de45a9", "submitter": { "id": 1670, "url": "http://patchwork.ozlabs.org/api/people/1670/?format=api", "name": "Tantilov, Emil S", "email": "emil.s.tantilov@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/20170328182754.3607.1614.stgit@localhost6.localdomain6/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/744487/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/744487/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 whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138])\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 3vszzY0K7hz9s1y\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 29 Mar 2017 05:33:12 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 4FE63893FC;\n\tTue, 28 Mar 2017 18:33:11 +0000 (UTC)", "from whitealder.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id 0CeA6WjTbmMr; Tue, 28 Mar 2017 18:33:10 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 2D9C88905E;\n\tTue, 28 Mar 2017 18:33:10 +0000 (UTC)", "from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\n\tby ash.osuosl.org (Postfix) with ESMTP id 8ABF01C000C\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue, 28 Mar 2017 18:33:08 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 8620489137\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue, 28 Mar 2017 18:33:08 +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 0h50aTQpeW0S for <intel-wired-lan@lists.osuosl.org>;\n\tTue, 28 Mar 2017 18:33:07 +0000 (UTC)", "from mga09.intel.com (mga09.intel.com [134.134.136.24])\n\tby hemlock.osuosl.org (Postfix) with ESMTPS id 5161C890C5\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue, 28 Mar 2017 18:33:07 +0000 (UTC)", "from orsmga001.jf.intel.com ([10.7.209.18])\n\tby orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t28 Mar 2017 11:33:06 -0700", "from estantil-desk3.jf.intel.com (HELO localhost6.localdomain6)\n\t([10.166.152.131])\n\tby orsmga001.jf.intel.com with ESMTP; 28 Mar 2017 11:33:06 -0700" ], "Authentication-Results": "ozlabs.org;\n\tdkim=fail reason=\"key not found in DNS\" (0-bit key;\n\tunprotected) header.d=intel.com header.i=@intel.com\n\theader.b=\"IIT7MGy4\"; dkim-atps=neutral", "X-Virus-Scanned": [ "amavisd-new at osuosl.org", "amavisd-new at osuosl.org" ], "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6", "DKIM-Signature": "v=1; a=rsa-sha256; c=simple/simple;\n\td=intel.com; i=@intel.com; q=dns/txt; s=intel;\n\tt=1490725987; x=1522261987;\n\th=subject:from:to:date:message-id:mime-version:\n\tcontent-transfer-encoding;\n\tbh=mmT7OQYtU5YvitWBI8oYvr0zrkP0TG3ItaGcMjxby9g=;\n\tb=IIT7MGy4ETIH6uCZd5nOEaLUZuoa7T1tjdMX26YO1JInoYGM8Fc/e5Op\n\tMEZ8F89MTgnWFLf2trD1mFintD/EUQ==;", "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos; i=\"5.36,237,1486454400\"; d=\"scan'208\";\n\ta=\"1113027843\"", "From": "Emil Tantilov <emil.s.tantilov@intel.com>", "To": "intel-wired-lan@lists.osuosl.org", "Date": "Tue, 28 Mar 2017 11:27:54 -0700", "Message-ID": "<20170328182754.3607.1614.stgit@localhost6.localdomain6>", "User-Agent": "StGit/0.17.1-17-ge4e0", "MIME-Version": "1.0", "Subject": "[Intel-wired-lan] [PATCH] ixgbe: clean macvlan MAC filter table on\n\tVF reset", "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>", "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": "Flush the macvlan filters on VF reset to avoid conflict with other VFs that\nmay end up using the same MAC address.\n\nThe main change here is the call to ixgbe_set_vf_macvlan() with index 0.\n\nMoved ixgbe_set_vf_macvlan() in front of ixgbe_vf_reset_event() to avoid\nadding a prototype.\n\nReported-by: Sritej Kanakadandi Sritej Rama <skanakad@cisco.com>\nSigned-off-by: Emil Tantilov <emil.s.tantilov@intel.com>\n---\n drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 105 ++++++++++++------------\n 1 file changed, 53 insertions(+), 52 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c\nindex 102ca93..c45de53 100644\n--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c\n+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c\n@@ -677,58 +677,6 @@ static void ixgbe_clear_vf_vlans(struct ixgbe_adapter *adapter, u32 vf)\n \t}\n }\n \n-static inline void ixgbe_vf_reset_event(struct ixgbe_adapter *adapter, u32 vf)\n-{\n-\tstruct ixgbe_hw *hw = &adapter->hw;\n-\tstruct vf_data_storage *vfinfo = &adapter->vfinfo[vf];\n-\tu8 num_tcs = netdev_get_num_tc(adapter->netdev);\n-\n-\t/* remove VLAN filters beloning to this VF */\n-\tixgbe_clear_vf_vlans(adapter, vf);\n-\n-\t/* add back PF assigned VLAN or VLAN 0 */\n-\tixgbe_set_vf_vlan(adapter, true, vfinfo->pf_vlan, vf);\n-\n-\t/* reset offloads to defaults */\n-\tixgbe_set_vmolr(hw, vf, !vfinfo->pf_vlan);\n-\n-\t/* set outgoing tags for VFs */\n-\tif (!vfinfo->pf_vlan && !vfinfo->pf_qos && !num_tcs) {\n-\t\tixgbe_clear_vmvir(adapter, vf);\n-\t} else {\n-\t\tif (vfinfo->pf_qos || !num_tcs)\n-\t\t\tixgbe_set_vmvir(adapter, vfinfo->pf_vlan,\n-\t\t\t\t\tvfinfo->pf_qos, vf);\n-\t\telse\n-\t\t\tixgbe_set_vmvir(adapter, vfinfo->pf_vlan,\n-\t\t\t\t\tadapter->default_up, vf);\n-\n-\t\tif (vfinfo->spoofchk_enabled)\n-\t\t\thw->mac.ops.set_vlan_anti_spoofing(hw, true, vf);\n-\t}\n-\n-\t/* reset multicast table array for vf */\n-\tadapter->vfinfo[vf].num_vf_mc_hashes = 0;\n-\n-\t/* Flush and reset the mta with the new values */\n-\tixgbe_set_rx_mode(adapter->netdev);\n-\n-\tixgbe_del_mac_filter(adapter, adapter->vfinfo[vf].vf_mac_addresses, vf);\n-\n-\t/* reset VF api back to unknown */\n-\tadapter->vfinfo[vf].vf_api = ixgbe_mbox_api_10;\n-}\n-\n-static int ixgbe_set_vf_mac(struct ixgbe_adapter *adapter,\n-\t\t\t int vf, unsigned char *mac_addr)\n-{\n-\tixgbe_del_mac_filter(adapter, adapter->vfinfo[vf].vf_mac_addresses, vf);\n-\tmemcpy(adapter->vfinfo[vf].vf_mac_addresses, mac_addr, ETH_ALEN);\n-\tixgbe_add_mac_filter(adapter, adapter->vfinfo[vf].vf_mac_addresses, vf);\n-\n-\treturn 0;\n-}\n-\n static int ixgbe_set_vf_macvlan(struct ixgbe_adapter *adapter,\n \t\t\t\tint vf, int index, unsigned char *mac_addr)\n {\n@@ -784,6 +732,59 @@ static int ixgbe_set_vf_macvlan(struct ixgbe_adapter *adapter,\n \treturn 0;\n }\n \n+static inline void ixgbe_vf_reset_event(struct ixgbe_adapter *adapter, u32 vf)\n+{\n+\tstruct ixgbe_hw *hw = &adapter->hw;\n+\tstruct vf_data_storage *vfinfo = &adapter->vfinfo[vf];\n+\tu8 num_tcs = netdev_get_num_tc(adapter->netdev);\n+\n+\t/* remove VLAN filters beloning to this VF */\n+\tixgbe_clear_vf_vlans(adapter, vf);\n+\n+\t/* add back PF assigned VLAN or VLAN 0 */\n+\tixgbe_set_vf_vlan(adapter, true, vfinfo->pf_vlan, vf);\n+\n+\t/* reset offloads to defaults */\n+\tixgbe_set_vmolr(hw, vf, !vfinfo->pf_vlan);\n+\n+\t/* set outgoing tags for VFs */\n+\tif (!vfinfo->pf_vlan && !vfinfo->pf_qos && !num_tcs) {\n+\t\tixgbe_clear_vmvir(adapter, vf);\n+\t} else {\n+\t\tif (vfinfo->pf_qos || !num_tcs)\n+\t\t\tixgbe_set_vmvir(adapter, vfinfo->pf_vlan,\n+\t\t\t\t\tvfinfo->pf_qos, vf);\n+\t\telse\n+\t\t\tixgbe_set_vmvir(adapter, vfinfo->pf_vlan,\n+\t\t\t\t\tadapter->default_up, vf);\n+\n+\t\tif (vfinfo->spoofchk_enabled)\n+\t\t\thw->mac.ops.set_vlan_anti_spoofing(hw, true, vf);\n+\t}\n+\n+\t/* reset multicast table array for vf */\n+\tadapter->vfinfo[vf].num_vf_mc_hashes = 0;\n+\n+\t/* Flush and reset the mta with the new values */\n+\tixgbe_set_rx_mode(adapter->netdev);\n+\n+\tixgbe_del_mac_filter(adapter, adapter->vfinfo[vf].vf_mac_addresses, vf);\n+\tixgbe_set_vf_macvlan(adapter, vf, 0, NULL);\n+\n+\t/* reset VF api back to unknown */\n+\tadapter->vfinfo[vf].vf_api = ixgbe_mbox_api_10;\n+}\n+\n+static int ixgbe_set_vf_mac(struct ixgbe_adapter *adapter,\n+\t\t\t int vf, unsigned char *mac_addr)\n+{\n+\tixgbe_del_mac_filter(adapter, adapter->vfinfo[vf].vf_mac_addresses, vf);\n+\tmemcpy(adapter->vfinfo[vf].vf_mac_addresses, mac_addr, ETH_ALEN);\n+\tixgbe_add_mac_filter(adapter, adapter->vfinfo[vf].vf_mac_addresses, vf);\n+\n+\treturn 0;\n+}\n+\n int ixgbe_vf_configuration(struct pci_dev *pdev, unsigned int event_mask)\n {\n \tstruct ixgbe_adapter *adapter = pci_get_drvdata(pdev);\n", "prefixes": [] }