mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-05 09:56:55 +07:00
ixgbe: fix setting port VLAN
This patch fixes couple of issues introduced by
commit 2b509c0cd2
("ixgbe: cleanup ixgbe_ndo_set_vf_vlan")
- fix setting of the VLAN inside ixgbe_enable_port_vlan()
- disable the "hide VLAN" bit in PFQDE when port VLAN is disabled
Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Tested-by: Krishneil Singh <Krishneil.k.singh@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
9295edb472
commit
42ce2c8ef6
@ -1094,14 +1094,12 @@ static int ixgbe_enable_port_vlan(struct ixgbe_adapter *adapter, int vf,
|
||||
u16 vlan, u8 qos)
|
||||
{
|
||||
struct ixgbe_hw *hw = &adapter->hw;
|
||||
int err = 0;
|
||||
int err;
|
||||
|
||||
if (adapter->vfinfo[vf].pf_vlan)
|
||||
err = ixgbe_set_vf_vlan(adapter, false,
|
||||
adapter->vfinfo[vf].pf_vlan,
|
||||
vf);
|
||||
err = ixgbe_set_vf_vlan(adapter, true, vlan, vf);
|
||||
if (err)
|
||||
goto out;
|
||||
|
||||
ixgbe_set_vmvir(adapter, vlan, qos, vf);
|
||||
ixgbe_set_vmolr(hw, vf, false);
|
||||
if (adapter->vfinfo[vf].spoofchk_enabled)
|
||||
@ -1140,6 +1138,11 @@ static int ixgbe_disable_port_vlan(struct ixgbe_adapter *adapter, int vf)
|
||||
hw->mac.ops.set_vlan_anti_spoofing(hw, false, vf);
|
||||
if (adapter->vfinfo[vf].vlan_count)
|
||||
adapter->vfinfo[vf].vlan_count--;
|
||||
|
||||
/* disable hide VLAN on X550 */
|
||||
if (hw->mac.type >= ixgbe_mac_X550)
|
||||
ixgbe_write_qde(adapter, vf, IXGBE_QDE_ENABLE);
|
||||
|
||||
adapter->vfinfo[vf].pf_vlan = 0;
|
||||
adapter->vfinfo[vf].pf_qos = 0;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user