Skip to content

Commit 2b20271

Browse files
Greg Rosedavem330
authored andcommitted
ixgbe: UTA table incorrectly programmed
The UTA table was being set to the functional equivalent of promiscuous mode. This was resulting in traffic from the virtual function being flooded onto the wire and the PF device. This resulted in additional overhead for VF traffic sent to the network and in the case of traffic sent to the PF or another VF resulted in unwanted packets on the wire. This was actually not the intended behavior. Now that we can program the embedded switch correctly we can remove this snippit of code. Users who want to support this should configure the FDB correctly using the FDB ops. Signed-off-by: Greg Rose <[email protected]> Signed-off-by: John Fastabend <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 9dcb373 commit 2b20271

File tree

1 file changed

+0
-29
lines changed

1 file changed

+0
-29
lines changed

drivers/net/ethernet/intel/ixgbe/ixgbe_main.c

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2904,33 +2904,6 @@ static void ixgbe_configure_rscctl(struct ixgbe_adapter *adapter,
29042904
IXGBE_WRITE_REG(hw, IXGBE_RSCCTL(reg_idx), rscctrl);
29052905
}
29062906

2907-
/**
2908-
* ixgbe_set_uta - Set unicast filter table address
2909-
* @adapter: board private structure
2910-
*
2911-
* The unicast table address is a register array of 32-bit registers.
2912-
* The table is meant to be used in a way similar to how the MTA is used
2913-
* however due to certain limitations in the hardware it is necessary to
2914-
* set all the hash bits to 1 and use the VMOLR ROPE bit as a promiscuous
2915-
* enable bit to allow vlan tag stripping when promiscuous mode is enabled
2916-
**/
2917-
static void ixgbe_set_uta(struct ixgbe_adapter *adapter)
2918-
{
2919-
struct ixgbe_hw *hw = &adapter->hw;
2920-
int i;
2921-
2922-
/* The UTA table only exists on 82599 hardware and newer */
2923-
if (hw->mac.type < ixgbe_mac_82599EB)
2924-
return;
2925-
2926-
/* we only need to do this if VMDq is enabled */
2927-
if (!(adapter->flags & IXGBE_FLAG_SRIOV_ENABLED))
2928-
return;
2929-
2930-
for (i = 0; i < 128; i++)
2931-
IXGBE_WRITE_REG(hw, IXGBE_UTA(i), ~0);
2932-
}
2933-
29342907
#define IXGBE_MAX_RX_DESC_POLL 10
29352908
static void ixgbe_rx_desc_queue_enable(struct ixgbe_adapter *adapter,
29362909
struct ixgbe_ring *ring)
@@ -3224,8 +3197,6 @@ static void ixgbe_configure_rx(struct ixgbe_adapter *adapter)
32243197
/* Program registers for the distribution of queues */
32253198
ixgbe_setup_mrqc(adapter);
32263199

3227-
ixgbe_set_uta(adapter);
3228-
32293200
/* set_rx_buffer_len must be called before ring initialization */
32303201
ixgbe_set_rx_buffer_len(adapter);
32313202

0 commit comments

Comments
 (0)