Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/480314/?format=api
{ "id": 480314, "url": "http://patchwork.ozlabs.org/api/patches/480314/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1433374272-6684-11-git-send-email-jacob.e.keller@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": "<1433374272-6684-11-git-send-email-jacob.e.keller@intel.com>", "list_archive_url": null, "date": "2015-06-03T23:31:07", "name": "[rc2,10/15] fm10k: force LPORT delete when updating VLAN or MAC address", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "091f580d242fda38d62c40dde679f749cab87124", "submitter": { "id": 9784, "url": "http://patchwork.ozlabs.org/api/people/9784/?format=api", "name": "Jacob Keller", "email": "jacob.e.keller@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/1433374272-6684-11-git-send-email-jacob.e.keller@intel.com/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/480314/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/480314/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 silver.osuosl.org (silver.osuosl.org [140.211.166.136])\n\tby ozlabs.org (Postfix) with ESMTP id 9F6D71401EF\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 4 Jun 2015 09:31:33 +1000 (AEST)", "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id CA7C93292D;\n\tWed, 3 Jun 2015 23:31:32 +0000 (UTC)", "from silver.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id ZekcSeNphn5c; Wed, 3 Jun 2015 23:31:27 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby silver.osuosl.org (Postfix) with ESMTP id E55D832931;\n\tWed, 3 Jun 2015 23:31:21 +0000 (UTC)", "from whitealder.osuosl.org (whitealder.osuosl.org\n\t[140.211.166.138])\n\tby ash.osuosl.org (Postfix) with ESMTP id CA45D1C2C9C\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 3 Jun 2015 23:31:20 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id C5E538D175\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 3 Jun 2015 23:31:20 +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 1Eadb8SP4zMF for <intel-wired-lan@lists.osuosl.org>;\n\tWed, 3 Jun 2015 23:31:19 +0000 (UTC)", "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 8F0AA8D1C4\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 3 Jun 2015 23:31:18 +0000 (UTC)", "from orsmga003.jf.intel.com ([10.7.209.27])\n\tby fmsmga103.fm.intel.com with ESMTP; 03 Jun 2015 16:31:18 -0700", "from jekeller-desk.amr.corp.intel.com (HELO\n\tjekeller-desk.jekeller.internal) ([134.134.3.151])\n\tby orsmga003.jf.intel.com with ESMTP; 03 Jun 2015 16:31:14 -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.13,549,1427785200\"; d=\"scan'208\";a=\"581683036\"", "From": "Jacob Keller <jacob.e.keller@intel.com>", "To": "Intel Wired LAN <intel-wired-lan@lists.osuosl.org>", "Date": "Wed, 3 Jun 2015 16:31:07 -0700", "Message-Id": "<1433374272-6684-11-git-send-email-jacob.e.keller@intel.com>", "X-Mailer": "git-send-email 2.1.0", "In-Reply-To": "<1433374272-6684-1-git-send-email-jacob.e.keller@intel.com>", "References": "<1433374272-6684-1-git-send-email-jacob.e.keller@intel.com>", "Subject": "[Intel-wired-lan] [rc2 10/15] fm10k: force LPORT delete when\n\tupdating VLAN or MAC address", "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": "Currently, we don't notify the switch at all when the PF\nadministratively sets a new VLAN or MAC address. This causes the old\naddresses to remain valid on the switch table. Since the PF is\noverriding any configuration done directly by the VF, we choose to\nsimply re-create the LPORT for the VF. This does mean that all rules for\nthe VF will be dropped when we set something directly via the PF, but it\nprevents some weird issues where the MAC/VLAN table retains some stale\nconfiguration.\n\nSigned-off-by: Jacob Keller <jacob.e.keller@intel.com>\n---\n drivers/net/ethernet/intel/fm10k/fm10k_iov.c | 38 +++++++++++++++++-----------\n 1 file changed, 23 insertions(+), 15 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_iov.c b/drivers/net/ethernet/intel/fm10k/fm10k_iov.c\nindex 5b08e6284a3c..94571e6e790c 100644\n--- a/drivers/net/ethernet/intel/fm10k/fm10k_iov.c\n+++ b/drivers/net/ethernet/intel/fm10k/fm10k_iov.c\n@@ -400,11 +400,31 @@ int fm10k_iov_configure(struct pci_dev *pdev, int num_vfs)\n \treturn num_vfs;\n }\n \n+static inline void fm10k_reset_vf_info(struct fm10k_intfc *interface,\n+\t\t\t\t struct fm10k_vf_info *vf_info)\n+{\n+\tstruct fm10k_hw *hw = &interface->hw;\n+\n+\t/* assigning the MAC address will send a mailbox message */\n+\tfm10k_mbx_lock(interface);\n+\n+\t/* disable LPORT for this VF which clears switch rules */\n+\thw->iov.ops.reset_lport(hw, vf_info);\n+\n+\t/* assign new MAC+VLAN for this VF */\n+\thw->iov.ops.assign_default_mac_vlan(hw, vf_info);\n+\n+\t/* re-enable the LPORT for this VF */\n+\thw->iov.ops.set_lport(hw, vf_info, vf_info->vf_idx,\n+\t\t\t FM10K_VF_FLAG_MULTI_CAPABLE);\n+\n+\tfm10k_mbx_unlock(interface);\n+}\n+\n int fm10k_ndo_set_vf_mac(struct net_device *netdev, int vf_idx, u8 *mac)\n {\n \tstruct fm10k_intfc *interface = netdev_priv(netdev);\n \tstruct fm10k_iov_data *iov_data = interface->iov_data;\n-\tstruct fm10k_hw *hw = &interface->hw;\n \tstruct fm10k_vf_info *vf_info;\n \n \t/* verify SR-IOV is active and that vf idx is valid */\n@@ -419,13 +439,7 @@ int fm10k_ndo_set_vf_mac(struct net_device *netdev, int vf_idx, u8 *mac)\n \tvf_info = &iov_data->vf_info[vf_idx];\n \tether_addr_copy(vf_info->mac, mac);\n \n-\t/* assigning the MAC will send a mailbox message so lock is needed */\n-\tfm10k_mbx_lock(interface);\n-\n-\t/* assign MAC address to VF */\n-\thw->iov.ops.assign_default_mac_vlan(hw, vf_info);\n-\n-\tfm10k_mbx_unlock(interface);\n+\tfm10k_reset_vf_info(interface, vf_info);\n \n \treturn 0;\n }\n@@ -455,16 +469,10 @@ int fm10k_ndo_set_vf_vlan(struct net_device *netdev, int vf_idx, u16 vid,\n \t/* record default VLAN ID for VF */\n \tvf_info->pf_vid = vid;\n \n-\t/* assigning the VLAN will send a mailbox message so lock is needed */\n-\tfm10k_mbx_lock(interface);\n-\n \t/* Clear the VLAN table for the VF */\n \thw->mac.ops.update_vlan(hw, FM10K_VLAN_ALL, vf_info->vsi, false);\n \n-\t/* Update VF assignment and trigger reset */\n-\thw->iov.ops.assign_default_mac_vlan(hw, vf_info);\n-\n-\tfm10k_mbx_unlock(interface);\n+\tfm10k_reset_vf_info(interface, vf_info);\n \n \treturn 0;\n }\n", "prefixes": [ "rc2", "10/15" ] }