Skip to content

Commit 869f3f7

Browse files
committed
Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue
Tony Nguyen says: ==================== Intel Wired LAN Driver Updates 2026-01-20 (ice, idpf) For ice: Cody Haas breaks dependency of needing both RSS key and LUT for ice_get_rxfh() as ethtool ioctls do not always supply both. Paul fixes issues related to devlink reload; adding missing deinit HW call and moving hwmon exit function to the proper call chain. For idpf: Mina Almasry moves a register read call into the time sandwich to ensure the register is properly flushed. * '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue: idpf: read lower clock bits inside the time sandwich ice: fix devlink reload call trace ice: add missing ice_deinit_hw() in devlink reinit path ice: Fix persistent failure in ice_get_rxfh ==================== Link: https://patch.msgid.link/20260120224430.410377-1-anthony.l.nguyen@intel.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2 parents dfca045 + bdfc7b5 commit 869f3f7

5 files changed

Lines changed: 33 additions & 8 deletions

File tree

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,7 @@ static void ice_devlink_reinit_down(struct ice_pf *pf)
460460
ice_vsi_decfg(ice_get_main_vsi(pf));
461461
rtnl_unlock();
462462
ice_deinit_pf(pf);
463+
ice_deinit_hw(&pf->hw);
463464
ice_deinit_dev(pf);
464465
}
465466

drivers/net/ethernet/intel/ice/ice.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -979,6 +979,7 @@ void ice_map_xdp_rings(struct ice_vsi *vsi);
979979
int
980980
ice_xdp_xmit(struct net_device *dev, int n, struct xdp_frame **frames,
981981
u32 flags);
982+
int ice_get_rss(struct ice_vsi *vsi, u8 *seed, u8 *lut, u16 lut_size);
982983
int ice_set_rss_lut(struct ice_vsi *vsi, u8 *lut, u16 lut_size);
983984
int ice_get_rss_lut(struct ice_vsi *vsi, u8 *lut, u16 lut_size);
984985
int ice_set_rss_key(struct ice_vsi *vsi, u8 *seed);

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3626,11 +3626,7 @@ ice_get_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh)
36263626
if (!lut)
36273627
return -ENOMEM;
36283628

3629-
err = ice_get_rss_key(vsi, rxfh->key);
3630-
if (err)
3631-
goto out;
3632-
3633-
err = ice_get_rss_lut(vsi, lut, vsi->rss_table_size);
3629+
err = ice_get_rss(vsi, rxfh->key, lut, vsi->rss_table_size);
36343630
if (err)
36353631
goto out;
36363632

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

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4836,6 +4836,7 @@ static void ice_deinit_features(struct ice_pf *pf)
48364836
ice_dpll_deinit(pf);
48374837
if (pf->eswitch_mode == DEVLINK_ESWITCH_MODE_SWITCHDEV)
48384838
xa_destroy(&pf->eswitch.reprs);
4839+
ice_hwmon_exit(pf);
48394840
}
48404841

48414842
static void ice_init_wakeup(struct ice_pf *pf)
@@ -5437,8 +5438,6 @@ static void ice_remove(struct pci_dev *pdev)
54375438
ice_free_vfs(pf);
54385439
}
54395440

5440-
ice_hwmon_exit(pf);
5441-
54425441
if (!ice_is_safe_mode(pf))
54435442
ice_remove_arfs(pf);
54445443

@@ -7988,6 +7987,34 @@ int ice_get_rss_key(struct ice_vsi *vsi, u8 *seed)
79887987
return status;
79897988
}
79907989

7990+
/**
7991+
* ice_get_rss - Get RSS LUT and/or key
7992+
* @vsi: Pointer to VSI structure
7993+
* @seed: Buffer to store the key in
7994+
* @lut: Buffer to store the lookup table entries
7995+
* @lut_size: Size of buffer to store the lookup table entries
7996+
*
7997+
* Return: 0 on success, negative on failure
7998+
*/
7999+
int ice_get_rss(struct ice_vsi *vsi, u8 *seed, u8 *lut, u16 lut_size)
8000+
{
8001+
int err;
8002+
8003+
if (seed) {
8004+
err = ice_get_rss_key(vsi, seed);
8005+
if (err)
8006+
return err;
8007+
}
8008+
8009+
if (lut) {
8010+
err = ice_get_rss_lut(vsi, lut, lut_size);
8011+
if (err)
8012+
return err;
8013+
}
8014+
8015+
return 0;
8016+
}
8017+
79918018
/**
79928019
* ice_set_rss_hfunc - Set RSS HASH function
79938020
* @vsi: Pointer to VSI structure

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,11 +108,11 @@ static u64 idpf_ptp_read_src_clk_reg_direct(struct idpf_adapter *adapter,
108108
ptp_read_system_prets(sts);
109109

110110
idpf_ptp_enable_shtime(adapter);
111+
lo = readl(ptp->dev_clk_regs.dev_clk_ns_l);
111112

112113
/* Read the system timestamp post PHC read */
113114
ptp_read_system_postts(sts);
114115

115-
lo = readl(ptp->dev_clk_regs.dev_clk_ns_l);
116116
hi = readl(ptp->dev_clk_regs.dev_clk_ns_h);
117117

118118
spin_unlock(&ptp->read_dev_clk_lock);

0 commit comments

Comments
 (0)