Patch "igc: Check VLAN EtherType mask" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    igc: Check VLAN EtherType mask

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     igc-check-vlan-ethertype-mask.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit d83510add615079f48d05616e32b10b2ff9ffe7b
Author: Kurt Kanzenbach <kurt@xxxxxxxxxxxxx>
Date:   Wed Dec 6 15:07:18 2023 +0100

    igc: Check VLAN EtherType mask
    
    [ Upstream commit 7afd49a38e73afd57ff62c8d1cf5af760c4d49c0 ]
    
    Currently the driver accepts VLAN EtherType steering rules regardless of
    the configured mask. And things might fail silently or with confusing error
    messages to the user. The VLAN EtherType can only be matched by full
    mask. Therefore, add a check for that.
    
    For instance the following rule is invalid, but the driver accepts it and
    ignores the user specified mask:
    |root@host:~# ethtool -N enp3s0 flow-type ether vlan-etype 0x8100 \
    |             m 0x00ff action 0
    |Added rule with ID 63
    |root@host:~# ethtool --show-ntuple enp3s0
    |4 RX rings available
    |Total 1 rules
    |
    |Filter: 63
    |        Flow Type: Raw Ethernet
    |        Src MAC addr: 00:00:00:00:00:00 mask: FF:FF:FF:FF:FF:FF
    |        Dest MAC addr: 00:00:00:00:00:00 mask: FF:FF:FF:FF:FF:FF
    |        Ethertype: 0x0 mask: 0xFFFF
    |        VLAN EtherType: 0x8100 mask: 0x0
    |        VLAN: 0x0 mask: 0xffff
    |        User-defined: 0x0 mask: 0xffffffffffffffff
    |        Action: Direct to queue 0
    
    After:
    |root@host:~# ethtool -N enp3s0 flow-type ether vlan-etype 0x8100 \
    |             m 0x00ff action 0
    |rmgr: Cannot insert RX class rule: Operation not supported
    
    Fixes: 2b477d057e33 ("igc: Integrate flex filter into ethtool ops")
    Suggested-by: Suman Ghosh <sumang@xxxxxxxxxxx>
    Signed-off-by: Kurt Kanzenbach <kurt@xxxxxxxxxxxxx>
    Acked-by: Vinicius Costa Gomes <vinicius.gomes@xxxxxxxxx>
    Reviewed-by: Simon Horman <horms@xxxxxxxxxx>
    Tested-by: Naama Meir <naamax.meir@xxxxxxxxxxxxxxx>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/intel/igc/igc_ethtool.c b/drivers/net/ethernet/intel/igc/igc_ethtool.c
index a044e4a3a39a4..f7284fa4324a4 100644
--- a/drivers/net/ethernet/intel/igc/igc_ethtool.c
+++ b/drivers/net/ethernet/intel/igc/igc_ethtool.c
@@ -1356,6 +1356,14 @@ static int igc_ethtool_add_nfc_rule(struct igc_adapter *adapter,
 		return -EOPNOTSUPP;
 	}
 
+	/* VLAN EtherType can only be matched by full mask. */
+	if ((fsp->flow_type & FLOW_EXT) &&
+	    fsp->m_ext.vlan_etype &&
+	    fsp->m_ext.vlan_etype != ETHER_TYPE_FULL_MASK) {
+		netdev_dbg(netdev, "VLAN EtherType mask not supported\n");
+		return -EOPNOTSUPP;
+	}
+
 	if (fsp->location >= IGC_MAX_RXNFC_RULES) {
 		netdev_dbg(netdev, "Invalid location\n");
 		return -EINVAL;




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux