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:
Родитель
eab2abf582
Коммит
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_VFTE(reg_offset), (1 << vf_shift));
|
||||
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 */
|
||||
|
|
|
@ -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));
|
||||
vmolr |= (IXGBE_VMOLR_AUPE |
|
||||
IXGBE_VMOLR_ROMPE |
|
||||
vmolr |= (IXGBE_VMOLR_ROMPE |
|
||||
IXGBE_VMOLR_ROPE |
|
||||
IXGBE_VMOLR_BAM);
|
||||
if (aupe)
|
||||
vmolr |= IXGBE_VMOLR_AUPE;
|
||||
else
|
||||
vmolr &= ~IXGBE_VMOLR_AUPE;
|
||||
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;
|
||||
|
||||
/* reset offloads to defaults */
|
||||
ixgbe_set_vmolr(hw, vf);
|
||||
ixgbe_set_vmolr(hw, vf, true);
|
||||
|
||||
|
||||
/* 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);
|
||||
void ixgbe_restore_vf_multicasts(struct ixgbe_adapter *adapter);
|
||||
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_msg(struct ixgbe_adapter *adapter, u32 vf);
|
||||
void ixgbe_msg_task(struct ixgbe_adapter *adapter);
|
||||
|
|
Загрузка…
Ссылка в новой задаче