]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
i40e: Removal of workaround for simple MAC address filter deletion
authorFilip Sadowski <filip.sadowski@intel.com>
Tue, 27 Sep 2016 18:28:53 +0000 (11:28 -0700)
committerDhaval Giani <dhaval.giani@oracle.com>
Wed, 8 Mar 2017 00:40:25 +0000 (19:40 -0500)
Orabug: 24568124

This is code refactoring. This patch removes the workaround which deleted
a default MAC filter added by the firmware when the interface was brought
up. This filter caused frames to pass disregarding the VLAN tagging.
It used to be automatically applied after reset in pre-SRA FW versions.
This workaround is not needed in production NICs and hence can be removed.

Change-ID: I129fe1aae1f17b5a224c9b29a996d916aa1be1ec
Signed-off-by: Filip Sadowski <filip.sadowski@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
(cherry picked from commit 53cb6e9e8949b13f63db0bc96f8fcc249763acfb)
Signed-off-by: Brian Maly <brian.maly@oracle.com>
Signed-off-by: Dhaval Giani <dhaval.giani@oracle.com>
drivers/net/ethernet/intel/i40e/i40e_main.c

index 2778711d3d6c2e52098a770daa61a841c9caa25a..e554f194980daad088e62c36641c3d2eff1ba15e 100644 (file)
@@ -1292,39 +1292,6 @@ int i40e_del_mac_all_vlan(struct i40e_vsi *vsi, u8 *macaddr,
        return -ENOENT;
 }
 
-/**
- * i40e_rm_default_mac_filter - Remove the default MAC filter set by NVM
- * @vsi: the PF Main VSI - inappropriate for any other VSI
- * @macaddr: the MAC address
- *
- * Remove whatever filter the firmware set up so the driver can manage
- * its own filtering intelligently.
- **/
-static void i40e_rm_default_mac_filter(struct i40e_vsi *vsi, u8 *macaddr)
-{
-       struct i40e_aqc_remove_macvlan_element_data element;
-       struct i40e_pf *pf = vsi->back;
-
-       /* Only appropriate for the PF main VSI */
-       if (vsi->type != I40E_VSI_MAIN)
-               return;
-
-       memset(&element, 0, sizeof(element));
-       ether_addr_copy(element.mac_addr, macaddr);
-       element.vlan_tag = 0;
-       /* Ignore error returns, some firmware does it this way... */
-       element.flags = I40E_AQC_MACVLAN_DEL_PERFECT_MATCH;
-       i40e_aq_remove_macvlan(&pf->hw, vsi->seid, &element, 1, NULL);
-
-       memset(&element, 0, sizeof(element));
-       ether_addr_copy(element.mac_addr, macaddr);
-       element.vlan_tag = 0;
-       /* ...and some firmware does it this way. */
-       element.flags = I40E_AQC_MACVLAN_DEL_PERFECT_MATCH |
-                       I40E_AQC_MACVLAN_DEL_IGNORE_VLAN;
-       i40e_aq_remove_macvlan(&pf->hw, vsi->seid, &element, 1, NULL);
-}
-
 /**
  * i40e_add_filter - Add a mac/vlan filter to the VSI
  * @vsi: the VSI to be searched
@@ -9095,12 +9062,6 @@ static int i40e_config_netdev(struct i40e_vsi *vsi)
        if (vsi->type == I40E_VSI_MAIN) {
                SET_NETDEV_DEV(netdev, &pf->pdev->dev);
                ether_addr_copy(mac_addr, hw->mac.perm_addr);
-               /* The following steps are necessary to prevent reception
-                * of tagged packets - some older NVM configurations load a
-                * default a MAC-VLAN filter that accepts any tagged packet
-                * which must be replaced by a normal filter.
-                */
-               i40e_rm_default_mac_filter(vsi, mac_addr);
                spin_lock_bh(&vsi->mac_filter_list_lock);
                i40e_add_filter(vsi, mac_addr, I40E_VLAN_ANY, false, true);
                spin_unlock_bh(&vsi->mac_filter_list_lock);
@@ -9613,8 +9574,6 @@ static struct i40e_vsi *i40e_vsi_reinit_setup(struct i40e_vsi *vsi)
        pf->vsi[pf->lan_vsi]->tc_config.enabled_tc = 0;
        pf->vsi[pf->lan_vsi]->seid = pf->main_vsi_seid;
        i40e_vsi_config_tc(pf->vsi[pf->lan_vsi], enabled_tc);
-       if (vsi->type == I40E_VSI_MAIN)
-               i40e_rm_default_mac_filter(vsi, pf->hw.mac.perm_addr);
 
        /* assign it some queues */
        ret = i40e_alloc_rings(vsi);