ixgbe: Add boolean parameter to ixgbe_set_vmolr
Add a boolean parameter to ixgbe-set_vmolr so that the caller can specify whether the pool should accept untagged packets. Required for a follow on patch to enable administrative configuration of port VLAN for virtual functions. Signed-off-by: Greg Rose <gregory.v.rose@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
eab2abf582
commit
f04127760e
|
@ -2722,7 +2722,7 @@ static void ixgbe_configure_rx(struct ixgbe_adapter *adapter)
|
||||||
IXGBE_WRITE_REG(hw, IXGBE_VFRE(reg_offset), (1 << vf_shift));
|
IXGBE_WRITE_REG(hw, IXGBE_VFRE(reg_offset), (1 << vf_shift));
|
||||||
IXGBE_WRITE_REG(hw, IXGBE_VFTE(reg_offset), (1 << vf_shift));
|
IXGBE_WRITE_REG(hw, IXGBE_VFTE(reg_offset), (1 << vf_shift));
|
||||||
IXGBE_WRITE_REG(hw, IXGBE_PFDTXGSWC, IXGBE_PFDTXGSWC_VT_LBEN);
|
IXGBE_WRITE_REG(hw, IXGBE_PFDTXGSWC, IXGBE_PFDTXGSWC_VT_LBEN);
|
||||||
ixgbe_set_vmolr(hw, adapter->num_vfs);
|
ixgbe_set_vmolr(hw, adapter->num_vfs, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Program MRQC for the distribution of queues */
|
/* Program MRQC for the distribution of queues */
|
||||||
|
|
|
@ -113,13 +113,16 @@ int ixgbe_set_vf_vlan(struct ixgbe_adapter *adapter, int add, int vid, u32 vf)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ixgbe_set_vmolr(struct ixgbe_hw *hw, u32 vf)
|
void ixgbe_set_vmolr(struct ixgbe_hw *hw, u32 vf, bool aupe)
|
||||||
{
|
{
|
||||||
u32 vmolr = IXGBE_READ_REG(hw, IXGBE_VMOLR(vf));
|
u32 vmolr = IXGBE_READ_REG(hw, IXGBE_VMOLR(vf));
|
||||||
vmolr |= (IXGBE_VMOLR_AUPE |
|
vmolr |= (IXGBE_VMOLR_ROMPE |
|
||||||
IXGBE_VMOLR_ROMPE |
|
|
||||||
IXGBE_VMOLR_ROPE |
|
IXGBE_VMOLR_ROPE |
|
||||||
IXGBE_VMOLR_BAM);
|
IXGBE_VMOLR_BAM);
|
||||||
|
if (aupe)
|
||||||
|
vmolr |= IXGBE_VMOLR_AUPE;
|
||||||
|
else
|
||||||
|
vmolr &= ~IXGBE_VMOLR_AUPE;
|
||||||
IXGBE_WRITE_REG(hw, IXGBE_VMOLR(vf), vmolr);
|
IXGBE_WRITE_REG(hw, IXGBE_VMOLR(vf), vmolr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,7 +131,7 @@ inline void ixgbe_vf_reset_event(struct ixgbe_adapter *adapter, u32 vf)
|
||||||
struct ixgbe_hw *hw = &adapter->hw;
|
struct ixgbe_hw *hw = &adapter->hw;
|
||||||
|
|
||||||
/* reset offloads to defaults */
|
/* reset offloads to defaults */
|
||||||
ixgbe_set_vmolr(hw, vf);
|
ixgbe_set_vmolr(hw, vf, true);
|
||||||
|
|
||||||
|
|
||||||
/* reset multicast table array for vf */
|
/* reset multicast table array for vf */
|
||||||
|
|
|
@ -32,7 +32,7 @@ int ixgbe_set_vf_multicasts(struct ixgbe_adapter *adapter,
|
||||||
int entries, u16 *hash_list, u32 vf);
|
int entries, u16 *hash_list, u32 vf);
|
||||||
void ixgbe_restore_vf_multicasts(struct ixgbe_adapter *adapter);
|
void ixgbe_restore_vf_multicasts(struct ixgbe_adapter *adapter);
|
||||||
int ixgbe_set_vf_vlan(struct ixgbe_adapter *adapter, int add, int vid, u32 vf);
|
int ixgbe_set_vf_vlan(struct ixgbe_adapter *adapter, int add, int vid, u32 vf);
|
||||||
void ixgbe_set_vmolr(struct ixgbe_hw *hw, u32 vf);
|
void ixgbe_set_vmolr(struct ixgbe_hw *hw, u32 vf, bool aupe);
|
||||||
void ixgbe_vf_reset_event(struct ixgbe_adapter *adapter, u32 vf);
|
void ixgbe_vf_reset_event(struct ixgbe_adapter *adapter, u32 vf);
|
||||||
void ixgbe_vf_reset_msg(struct ixgbe_adapter *adapter, u32 vf);
|
void ixgbe_vf_reset_msg(struct ixgbe_adapter *adapter, u32 vf);
|
||||||
void ixgbe_msg_task(struct ixgbe_adapter *adapter);
|
void ixgbe_msg_task(struct ixgbe_adapter *adapter);
|
||||||
|
|
Loading…
Reference in New Issue