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>
This commit is contained in:
commit
e866f29a6f
|
@ -661,7 +661,7 @@ struct iavf_rx_ptype_decoded iavf_ptype_lookup[BIT(8)] = {
|
||||||
/* Non Tunneled IPv6 */
|
/* Non Tunneled IPv6 */
|
||||||
IAVF_PTT(88, IP, IPV6, FRG, NONE, NONE, NOF, NONE, PAY3),
|
IAVF_PTT(88, IP, IPV6, FRG, NONE, NONE, NOF, NONE, PAY3),
|
||||||
IAVF_PTT(89, IP, IPV6, NOF, NONE, NONE, NOF, NONE, PAY3),
|
IAVF_PTT(89, IP, IPV6, NOF, NONE, NONE, NOF, NONE, PAY3),
|
||||||
IAVF_PTT(90, IP, IPV6, NOF, NONE, NONE, NOF, UDP, PAY3),
|
IAVF_PTT(90, IP, IPV6, NOF, NONE, NONE, NOF, UDP, PAY4),
|
||||||
IAVF_PTT_UNUSED_ENTRY(91),
|
IAVF_PTT_UNUSED_ENTRY(91),
|
||||||
IAVF_PTT(92, IP, IPV6, NOF, NONE, NONE, NOF, TCP, PAY4),
|
IAVF_PTT(92, IP, IPV6, NOF, NONE, NONE, NOF, TCP, PAY4),
|
||||||
IAVF_PTT(93, IP, IPV6, NOF, NONE, NONE, NOF, SCTP, PAY4),
|
IAVF_PTT(93, IP, IPV6, NOF, NONE, NONE, NOF, SCTP, PAY4),
|
||||||
|
|
|
@ -893,6 +893,10 @@ static int iavf_vlan_rx_add_vid(struct net_device *netdev,
|
||||||
{
|
{
|
||||||
struct iavf_adapter *adapter = netdev_priv(netdev);
|
struct iavf_adapter *adapter = netdev_priv(netdev);
|
||||||
|
|
||||||
|
/* Do not track VLAN 0 filter, always added by the PF on VF init */
|
||||||
|
if (!vid)
|
||||||
|
return 0;
|
||||||
|
|
||||||
if (!VLAN_FILTERING_ALLOWED(adapter))
|
if (!VLAN_FILTERING_ALLOWED(adapter))
|
||||||
return -EIO;
|
return -EIO;
|
||||||
|
|
||||||
|
@ -919,6 +923,10 @@ static int iavf_vlan_rx_kill_vid(struct net_device *netdev,
|
||||||
{
|
{
|
||||||
struct iavf_adapter *adapter = netdev_priv(netdev);
|
struct iavf_adapter *adapter = netdev_priv(netdev);
|
||||||
|
|
||||||
|
/* We do not track VLAN 0 filter */
|
||||||
|
if (!vid)
|
||||||
|
return 0;
|
||||||
|
|
||||||
iavf_del_vlan(adapter, IAVF_VLAN(vid, be16_to_cpu(proto)));
|
iavf_del_vlan(adapter, IAVF_VLAN(vid, be16_to_cpu(proto)));
|
||||||
if (proto == cpu_to_be16(ETH_P_8021Q))
|
if (proto == cpu_to_be16(ETH_P_8021Q))
|
||||||
clear_bit(vid, adapter->vsi.active_cvlans);
|
clear_bit(vid, adapter->vsi.active_cvlans);
|
||||||
|
|
|
@ -1096,7 +1096,7 @@ static inline void iavf_rx_hash(struct iavf_ring *ring,
|
||||||
cpu_to_le64((u64)IAVF_RX_DESC_FLTSTAT_RSS_HASH <<
|
cpu_to_le64((u64)IAVF_RX_DESC_FLTSTAT_RSS_HASH <<
|
||||||
IAVF_RX_DESC_STATUS_FLTSTAT_SHIFT);
|
IAVF_RX_DESC_STATUS_FLTSTAT_SHIFT);
|
||||||
|
|
||||||
if (ring->netdev->features & NETIF_F_RXHASH)
|
if (!(ring->netdev->features & NETIF_F_RXHASH))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if ((rx_desc->wb.qword1.status_error_len & rss_mask) == rss_mask) {
|
if ((rx_desc->wb.qword1.status_error_len & rss_mask) == rss_mask) {
|
||||||
|
|
|
@ -2446,8 +2446,6 @@ void iavf_virtchnl_completion(struct iavf_adapter *adapter,
|
||||||
list_for_each_entry(f, &adapter->vlan_filter_list, list) {
|
list_for_each_entry(f, &adapter->vlan_filter_list, list) {
|
||||||
if (f->is_new_vlan) {
|
if (f->is_new_vlan) {
|
||||||
f->is_new_vlan = false;
|
f->is_new_vlan = false;
|
||||||
if (!f->vlan.vid)
|
|
||||||
continue;
|
|
||||||
if (f->vlan.tpid == ETH_P_8021Q)
|
if (f->vlan.tpid == ETH_P_8021Q)
|
||||||
set_bit(f->vlan.vid,
|
set_bit(f->vlan.vid,
|
||||||
adapter->vsi.active_cvlans);
|
adapter->vsi.active_cvlans);
|
||||||
|
|
Loading…
Reference in New Issue