Skip to content

Commit e866f29

Browse files
committed
Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue
Tony Nguyen says: ==================== Intel Wired LAN Driver Updates 2023-03-16 (iavf) This series contains updates to iavf driver only. Alex fixes incorrect check against Rx hash feature and corrects payload value for IPv6 UDP packet. Ahmed removes bookkeeping of VLAN 0 filter as it always exists and can cause a false max filter error message. * '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue: iavf: do not track VLAN 0 filters iavf: fix non-tunneled IPv6 UDP packet type and hashing iavf: fix inverted Rx hash condition leading to disabled hash ==================== Link: https://lore.kernel.org/r/20230316155316.1554931-1-anthony.l.nguyen@intel.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2 parents 3dacc5b + 964290f commit e866f29

File tree

4 files changed

+10
-4
lines changed

4 files changed

+10
-4
lines changed

drivers/net/ethernet/intel/iavf/iavf_common.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -661,7 +661,7 @@ struct iavf_rx_ptype_decoded iavf_ptype_lookup[BIT(8)] = {
661661
/* Non Tunneled IPv6 */
662662
IAVF_PTT(88, IP, IPV6, FRG, NONE, NONE, NOF, NONE, PAY3),
663663
IAVF_PTT(89, IP, IPV6, NOF, NONE, NONE, NOF, NONE, PAY3),
664-
IAVF_PTT(90, IP, IPV6, NOF, NONE, NONE, NOF, UDP, PAY3),
664+
IAVF_PTT(90, IP, IPV6, NOF, NONE, NONE, NOF, UDP, PAY4),
665665
IAVF_PTT_UNUSED_ENTRY(91),
666666
IAVF_PTT(92, IP, IPV6, NOF, NONE, NONE, NOF, TCP, PAY4),
667667
IAVF_PTT(93, IP, IPV6, NOF, NONE, NONE, NOF, SCTP, PAY4),

drivers/net/ethernet/intel/iavf/iavf_main.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -893,6 +893,10 @@ static int iavf_vlan_rx_add_vid(struct net_device *netdev,
893893
{
894894
struct iavf_adapter *adapter = netdev_priv(netdev);
895895

896+
/* Do not track VLAN 0 filter, always added by the PF on VF init */
897+
if (!vid)
898+
return 0;
899+
896900
if (!VLAN_FILTERING_ALLOWED(adapter))
897901
return -EIO;
898902

@@ -919,6 +923,10 @@ static int iavf_vlan_rx_kill_vid(struct net_device *netdev,
919923
{
920924
struct iavf_adapter *adapter = netdev_priv(netdev);
921925

926+
/* We do not track VLAN 0 filter */
927+
if (!vid)
928+
return 0;
929+
922930
iavf_del_vlan(adapter, IAVF_VLAN(vid, be16_to_cpu(proto)));
923931
if (proto == cpu_to_be16(ETH_P_8021Q))
924932
clear_bit(vid, adapter->vsi.active_cvlans);

drivers/net/ethernet/intel/iavf/iavf_txrx.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1096,7 +1096,7 @@ static inline void iavf_rx_hash(struct iavf_ring *ring,
10961096
cpu_to_le64((u64)IAVF_RX_DESC_FLTSTAT_RSS_HASH <<
10971097
IAVF_RX_DESC_STATUS_FLTSTAT_SHIFT);
10981098

1099-
if (ring->netdev->features & NETIF_F_RXHASH)
1099+
if (!(ring->netdev->features & NETIF_F_RXHASH))
11001100
return;
11011101

11021102
if ((rx_desc->wb.qword1.status_error_len & rss_mask) == rss_mask) {

drivers/net/ethernet/intel/iavf/iavf_virtchnl.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2446,8 +2446,6 @@ void iavf_virtchnl_completion(struct iavf_adapter *adapter,
24462446
list_for_each_entry(f, &adapter->vlan_filter_list, list) {
24472447
if (f->is_new_vlan) {
24482448
f->is_new_vlan = false;
2449-
if (!f->vlan.vid)
2450-
continue;
24512449
if (f->vlan.tpid == ETH_P_8021Q)
24522450
set_bit(f->vlan.vid,
24532451
adapter->vsi.active_cvlans);

0 commit comments

Comments
 (0)