lkml.org 
[lkml]   [2016]   [Sep]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 007/192] [PATCH 007/135] i40e: dont add zero MAC filter
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    [ Upstream commit b7b713a8eaf325607d37229f024ad0b9f3e7f320 ]

    When VFs are created, the MAC address defaults to all zeros, indicating
    to the VF driver that it should use a random MAC address. However, the
    PF driver was incorrectly adding this zero MAC to the filter table,
    along with the VF's randomly generated MAC address.

    Check for a good address before adding the default filter. While we're
    at it, make the error message a bit more useful.

    Change-ID: Ia100947d68140e0f73a19ba755cbffc3e79a8fcf
    Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
    Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 15 +++++++++------
    1 file changed, 9 insertions(+), 6 deletions(-)

    --- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
    +++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
    @@ -549,12 +549,15 @@ static int i40e_alloc_vsi_res(struct i40
    i40e_vsi_add_pvid(vsi, vf->port_vlan_id);

    spin_lock_bh(&vsi->mac_filter_list_lock);
    - f = i40e_add_filter(vsi, vf->default_lan_addr.addr,
    - vf->port_vlan_id ? vf->port_vlan_id : -1,
    - true, false);
    - if (!f)
    - dev_info(&pf->pdev->dev,
    - "Could not allocate VF MAC addr\n");
    + if (is_valid_ether_addr(vf->default_lan_addr.addr)) {
    + f = i40e_add_filter(vsi, vf->default_lan_addr.addr,
    + vf->port_vlan_id ? vf->port_vlan_id : -1,
    + true, false);
    + if (!f)
    + dev_info(&pf->pdev->dev,
    + "Could not add MAC filter %pM for VF %d\n",
    + vf->default_lan_addr.addr, vf->vf_id);
    + }
    f = i40e_add_filter(vsi, brdcast,
    vf->port_vlan_id ? vf->port_vlan_id : -1,
    true, false);

    \
     
     \ /
      Last update: 2016-09-17 09:59    [W:5.518 / U:0.172 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site