Skip to content

Commit d4cb1ec

Browse files
committed
Merge branch 'intel-net-queue-100GbE'
Tony Nguyen says: ==================== Intel Wired LAN Driver Updates 2025-04-22 (ice, idpf) For ice: Paul removes setting of ICE_AQ_FLAG_RD in ice_get_set_tx_topo() on E830 devices. Xuanqiang Luo adds error check for NULL VF VSI. For idpf: Madhu fixes misreporting of, currently, unsupported encapsulated packets. ==================== Link: https://patch.msgid.link/20250425222636.3188441-1-anthony.l.nguyen@intel.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2 parents bd808ca + 713dd6c commit d4cb1ec

File tree

4 files changed

+37
-53
lines changed

4 files changed

+37
-53
lines changed

drivers/net/ethernet/intel/ice/ice_ddp.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2345,15 +2345,15 @@ ice_get_set_tx_topo(struct ice_hw *hw, u8 *buf, u16 buf_size,
23452345
cmd->set_flags |= ICE_AQC_TX_TOPO_FLAGS_SRC_RAM |
23462346
ICE_AQC_TX_TOPO_FLAGS_LOAD_NEW;
23472347

2348-
if (hw->mac_type == ICE_MAC_GENERIC_3K_E825)
2349-
desc.flags |= cpu_to_le16(ICE_AQ_FLAG_RD);
2348+
desc.flags |= cpu_to_le16(ICE_AQ_FLAG_RD);
23502349
} else {
23512350
ice_fill_dflt_direct_cmd_desc(&desc, ice_aqc_opc_get_tx_topo);
23522351
cmd->get_flags = ICE_AQC_TX_TOPO_GET_RAM;
2353-
}
23542352

2355-
if (hw->mac_type != ICE_MAC_GENERIC_3K_E825)
2356-
desc.flags |= cpu_to_le16(ICE_AQ_FLAG_RD);
2353+
if (hw->mac_type == ICE_MAC_E810 ||
2354+
hw->mac_type == ICE_MAC_GENERIC)
2355+
desc.flags |= cpu_to_le16(ICE_AQ_FLAG_RD);
2356+
}
23572357

23582358
status = ice_aq_send_cmd(hw, &desc, buf, buf_size, cd);
23592359
if (status)

drivers/net/ethernet/intel/ice/ice_virtchnl_fdir.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2097,6 +2097,11 @@ int ice_vc_add_fdir_fltr(struct ice_vf *vf, u8 *msg)
20972097
pf = vf->pf;
20982098
dev = ice_pf_to_dev(pf);
20992099
vf_vsi = ice_get_vf_vsi(vf);
2100+
if (!vf_vsi) {
2101+
dev_err(dev, "Can not get FDIR vf_vsi for VF %u\n", vf->vf_id);
2102+
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
2103+
goto err_exit;
2104+
}
21002105

21012106
#define ICE_VF_MAX_FDIR_FILTERS 128
21022107
if (!ice_fdir_num_avail_fltr(&pf->hw, vf_vsi) ||

drivers/net/ethernet/intel/idpf/idpf.h

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -629,13 +629,13 @@ bool idpf_is_capability_ena(struct idpf_adapter *adapter, bool all,
629629
VIRTCHNL2_CAP_RX_HSPLIT_AT_L4V4 |\
630630
VIRTCHNL2_CAP_RX_HSPLIT_AT_L4V6)
631631

632-
#define IDPF_CAP_RX_CSUM_L4V4 (\
633-
VIRTCHNL2_CAP_RX_CSUM_L4_IPV4_TCP |\
634-
VIRTCHNL2_CAP_RX_CSUM_L4_IPV4_UDP)
632+
#define IDPF_CAP_TX_CSUM_L4V4 (\
633+
VIRTCHNL2_CAP_TX_CSUM_L4_IPV4_TCP |\
634+
VIRTCHNL2_CAP_TX_CSUM_L4_IPV4_UDP)
635635

636-
#define IDPF_CAP_RX_CSUM_L4V6 (\
637-
VIRTCHNL2_CAP_RX_CSUM_L4_IPV6_TCP |\
638-
VIRTCHNL2_CAP_RX_CSUM_L4_IPV6_UDP)
636+
#define IDPF_CAP_TX_CSUM_L4V6 (\
637+
VIRTCHNL2_CAP_TX_CSUM_L4_IPV6_TCP |\
638+
VIRTCHNL2_CAP_TX_CSUM_L4_IPV6_UDP)
639639

640640
#define IDPF_CAP_RX_CSUM (\
641641
VIRTCHNL2_CAP_RX_CSUM_L3_IPV4 |\
@@ -644,11 +644,9 @@ bool idpf_is_capability_ena(struct idpf_adapter *adapter, bool all,
644644
VIRTCHNL2_CAP_RX_CSUM_L4_IPV6_TCP |\
645645
VIRTCHNL2_CAP_RX_CSUM_L4_IPV6_UDP)
646646

647-
#define IDPF_CAP_SCTP_CSUM (\
647+
#define IDPF_CAP_TX_SCTP_CSUM (\
648648
VIRTCHNL2_CAP_TX_CSUM_L4_IPV4_SCTP |\
649-
VIRTCHNL2_CAP_TX_CSUM_L4_IPV6_SCTP |\
650-
VIRTCHNL2_CAP_RX_CSUM_L4_IPV4_SCTP |\
651-
VIRTCHNL2_CAP_RX_CSUM_L4_IPV6_SCTP)
649+
VIRTCHNL2_CAP_TX_CSUM_L4_IPV6_SCTP)
652650

653651
#define IDPF_CAP_TUNNEL_TX_CSUM (\
654652
VIRTCHNL2_CAP_TX_CSUM_L3_SINGLE_TUNNEL |\

drivers/net/ethernet/intel/idpf/idpf_lib.c

Lines changed: 19 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -703,8 +703,10 @@ static int idpf_cfg_netdev(struct idpf_vport *vport)
703703
{
704704
struct idpf_adapter *adapter = vport->adapter;
705705
struct idpf_vport_config *vport_config;
706+
netdev_features_t other_offloads = 0;
707+
netdev_features_t csum_offloads = 0;
708+
netdev_features_t tso_offloads = 0;
706709
netdev_features_t dflt_features;
707-
netdev_features_t offloads = 0;
708710
struct idpf_netdev_priv *np;
709711
struct net_device *netdev;
710712
u16 idx = vport->idx;
@@ -766,53 +768,32 @@ static int idpf_cfg_netdev(struct idpf_vport *vport)
766768

767769
if (idpf_is_cap_ena_all(adapter, IDPF_RSS_CAPS, IDPF_CAP_RSS))
768770
dflt_features |= NETIF_F_RXHASH;
769-
if (idpf_is_cap_ena_all(adapter, IDPF_CSUM_CAPS, IDPF_CAP_RX_CSUM_L4V4))
770-
dflt_features |= NETIF_F_IP_CSUM;
771-
if (idpf_is_cap_ena_all(adapter, IDPF_CSUM_CAPS, IDPF_CAP_RX_CSUM_L4V6))
772-
dflt_features |= NETIF_F_IPV6_CSUM;
771+
if (idpf_is_cap_ena_all(adapter, IDPF_CSUM_CAPS, IDPF_CAP_TX_CSUM_L4V4))
772+
csum_offloads |= NETIF_F_IP_CSUM;
773+
if (idpf_is_cap_ena_all(adapter, IDPF_CSUM_CAPS, IDPF_CAP_TX_CSUM_L4V6))
774+
csum_offloads |= NETIF_F_IPV6_CSUM;
773775
if (idpf_is_cap_ena(adapter, IDPF_CSUM_CAPS, IDPF_CAP_RX_CSUM))
774-
dflt_features |= NETIF_F_RXCSUM;
775-
if (idpf_is_cap_ena_all(adapter, IDPF_CSUM_CAPS, IDPF_CAP_SCTP_CSUM))
776-
dflt_features |= NETIF_F_SCTP_CRC;
776+
csum_offloads |= NETIF_F_RXCSUM;
777+
if (idpf_is_cap_ena_all(adapter, IDPF_CSUM_CAPS, IDPF_CAP_TX_SCTP_CSUM))
778+
csum_offloads |= NETIF_F_SCTP_CRC;
777779

778780
if (idpf_is_cap_ena(adapter, IDPF_SEG_CAPS, VIRTCHNL2_CAP_SEG_IPV4_TCP))
779-
dflt_features |= NETIF_F_TSO;
781+
tso_offloads |= NETIF_F_TSO;
780782
if (idpf_is_cap_ena(adapter, IDPF_SEG_CAPS, VIRTCHNL2_CAP_SEG_IPV6_TCP))
781-
dflt_features |= NETIF_F_TSO6;
783+
tso_offloads |= NETIF_F_TSO6;
782784
if (idpf_is_cap_ena_all(adapter, IDPF_SEG_CAPS,
783785
VIRTCHNL2_CAP_SEG_IPV4_UDP |
784786
VIRTCHNL2_CAP_SEG_IPV6_UDP))
785-
dflt_features |= NETIF_F_GSO_UDP_L4;
787+
tso_offloads |= NETIF_F_GSO_UDP_L4;
786788
if (idpf_is_cap_ena_all(adapter, IDPF_RSC_CAPS, IDPF_CAP_RSC))
787-
offloads |= NETIF_F_GRO_HW;
788-
/* advertise to stack only if offloads for encapsulated packets is
789-
* supported
790-
*/
791-
if (idpf_is_cap_ena(vport->adapter, IDPF_SEG_CAPS,
792-
VIRTCHNL2_CAP_SEG_TX_SINGLE_TUNNEL)) {
793-
offloads |= NETIF_F_GSO_UDP_TUNNEL |
794-
NETIF_F_GSO_GRE |
795-
NETIF_F_GSO_GRE_CSUM |
796-
NETIF_F_GSO_PARTIAL |
797-
NETIF_F_GSO_UDP_TUNNEL_CSUM |
798-
NETIF_F_GSO_IPXIP4 |
799-
NETIF_F_GSO_IPXIP6 |
800-
0;
801-
802-
if (!idpf_is_cap_ena_all(vport->adapter, IDPF_CSUM_CAPS,
803-
IDPF_CAP_TUNNEL_TX_CSUM))
804-
netdev->gso_partial_features |=
805-
NETIF_F_GSO_UDP_TUNNEL_CSUM;
806-
807-
netdev->gso_partial_features |= NETIF_F_GSO_GRE_CSUM;
808-
offloads |= NETIF_F_TSO_MANGLEID;
809-
}
789+
other_offloads |= NETIF_F_GRO_HW;
810790
if (idpf_is_cap_ena(adapter, IDPF_OTHER_CAPS, VIRTCHNL2_CAP_LOOPBACK))
811-
offloads |= NETIF_F_LOOPBACK;
791+
other_offloads |= NETIF_F_LOOPBACK;
812792

813-
netdev->features |= dflt_features;
814-
netdev->hw_features |= dflt_features | offloads;
815-
netdev->hw_enc_features |= dflt_features | offloads;
793+
netdev->features |= dflt_features | csum_offloads | tso_offloads;
794+
netdev->hw_features |= netdev->features | other_offloads;
795+
netdev->vlan_features |= netdev->features | other_offloads;
796+
netdev->hw_enc_features |= dflt_features | other_offloads;
816797
idpf_set_ethtool_ops(netdev);
817798
netif_set_affinity_auto(netdev);
818799
SET_NETDEV_DEV(netdev, &adapter->pdev->dev);

0 commit comments

Comments
 (0)