From 366a16700780328e7aca7dfaee8b8488a364d741 Mon Sep 17 00:00:00 2001 From: Brian Maly Date: Mon, 25 Jan 2016 10:53:22 -0500 Subject: [PATCH] Revert "i40e: Set defport behavior for the Main VSI when in promiscuous mode" Orabug: 22519254 This reverts mainline commit c0496c116b2d6a53f67e1795beca6e7f319a1657. Conflicts: drivers/net/ethernet/intel/i40e/i40e_main.c Signed-off-by: Brian Maly --- drivers/net/ethernet/intel/i40e/i40e.h | 1 - drivers/net/ethernet/intel/i40e/i40e_main.c | 42 +++++---------------- 2 files changed, 9 insertions(+), 34 deletions(-) diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h index f5fcb42844ae..bba50c47a06e 100644 --- a/drivers/net/ethernet/intel/i40e/i40e.h +++ b/drivers/net/ethernet/intel/i40e/i40e.h @@ -372,7 +372,6 @@ struct i40e_pf { #ifdef CONFIG_DEBUG_FS struct dentry *i40e_dbg_pf; #endif /* CONFIG_DEBUG_FS */ - bool cur_promisc; u16 instance; /* A unique number per i40e_pf instance in the system */ diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index 8e81edf6aaaa..44661d61980c 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -1938,39 +1938,16 @@ int i40e_sync_vsi_filters(struct i40e_vsi *vsi, bool grab_rtnl) cur_promisc = (!!(vsi->current_netdev_flags & IFF_PROMISC) || test_bit(__I40E_FILTER_OVERFLOW_PROMISC, &vsi->state)); - if (vsi->type == I40E_VSI_MAIN && pf->lan_veb != I40E_NO_VEB) { - /* set defport ON for Main VSI instead of true promisc - * this way we will get all unicast/multicast and VLAN - * promisc behavior but will not get VF or VMDq traffic - * replicated on the Main VSI. - */ - if (pf->cur_promisc != cur_promisc) { - pf->cur_promisc = cur_promisc; - if (grab_rtnl) - i40e_do_reset_safe(pf, - BIT(__I40E_PF_RESET_REQUESTED)); - else - i40e_do_reset(pf, - BIT(__I40E_PF_RESET_REQUESTED)); - } - } else { - ret = i40e_aq_set_vsi_unicast_promiscuous( - &vsi->back->hw, - vsi->seid, - cur_promisc, NULL); - if (ret) - dev_info(&pf->pdev->dev, - "set unicast promisc failed, err %d, aq_err %d\n", - ret, pf->hw.aq.asq_last_status); - ret = i40e_aq_set_vsi_multicast_promiscuous( - &vsi->back->hw, + + ret = i40e_aq_set_vsi_unicast_promiscuous(&vsi->back->hw, vsi->seid, cur_promisc, NULL); - if (ret) - dev_info(&pf->pdev->dev, - "set multicast promisc failed, err %d, aq_err %d\n", - ret, pf->hw.aq.asq_last_status); - } + if (ret) + dev_info(&pf->pdev->dev, + "set uni promisc failed, err %s, aq_err %s\n", + i40e_stat_str(&pf->hw, ret), + i40e_aq_str(&pf->hw, + pf->hw.aq.asq_last_status)); ret = i40e_aq_set_vsi_broadcast(&vsi->back->hw, vsi->seid, cur_promisc, NULL); @@ -4026,7 +4003,6 @@ static void i40e_vsi_close(struct i40e_vsi *vsi) i40e_vsi_free_irq(vsi); i40e_vsi_free_tx_resources(vsi); i40e_vsi_free_rx_resources(vsi); - vsi->current_netdev_flags = 0; } /** @@ -9332,7 +9308,7 @@ void i40e_veb_release(struct i40e_veb *veb) static int i40e_add_veb(struct i40e_veb *veb, struct i40e_vsi *vsi) { struct i40e_pf *pf = veb->pf; - bool is_default = veb->pf->cur_promisc; + bool is_default = false; bool is_cloud = false; int ret; -- 2.50.1