mirror of
https://github.com/torvalds/linux.git
synced 2026-01-25 07:47:50 +00:00
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>
This commit is contained in:
@@ -460,6 +460,7 @@ static void ice_devlink_reinit_down(struct ice_pf *pf)
|
||||
ice_vsi_decfg(ice_get_main_vsi(pf));
|
||||
rtnl_unlock();
|
||||
ice_deinit_pf(pf);
|
||||
ice_deinit_hw(&pf->hw);
|
||||
ice_deinit_dev(pf);
|
||||
}
|
||||
|
||||
|
||||
@@ -979,6 +979,7 @@ void ice_map_xdp_rings(struct ice_vsi *vsi);
|
||||
int
|
||||
ice_xdp_xmit(struct net_device *dev, int n, struct xdp_frame **frames,
|
||||
u32 flags);
|
||||
int ice_get_rss(struct ice_vsi *vsi, u8 *seed, u8 *lut, u16 lut_size);
|
||||
int ice_set_rss_lut(struct ice_vsi *vsi, u8 *lut, u16 lut_size);
|
||||
int ice_get_rss_lut(struct ice_vsi *vsi, u8 *lut, u16 lut_size);
|
||||
int ice_set_rss_key(struct ice_vsi *vsi, u8 *seed);
|
||||
|
||||
@@ -3626,11 +3626,7 @@ ice_get_rxfh(struct net_device *netdev, struct ethtool_rxfh_param *rxfh)
|
||||
if (!lut)
|
||||
return -ENOMEM;
|
||||
|
||||
err = ice_get_rss_key(vsi, rxfh->key);
|
||||
if (err)
|
||||
goto out;
|
||||
|
||||
err = ice_get_rss_lut(vsi, lut, vsi->rss_table_size);
|
||||
err = ice_get_rss(vsi, rxfh->key, lut, vsi->rss_table_size);
|
||||
if (err)
|
||||
goto out;
|
||||
|
||||
|
||||
@@ -4836,6 +4836,7 @@ static void ice_deinit_features(struct ice_pf *pf)
|
||||
ice_dpll_deinit(pf);
|
||||
if (pf->eswitch_mode == DEVLINK_ESWITCH_MODE_SWITCHDEV)
|
||||
xa_destroy(&pf->eswitch.reprs);
|
||||
ice_hwmon_exit(pf);
|
||||
}
|
||||
|
||||
static void ice_init_wakeup(struct ice_pf *pf)
|
||||
@@ -5437,8 +5438,6 @@ static void ice_remove(struct pci_dev *pdev)
|
||||
ice_free_vfs(pf);
|
||||
}
|
||||
|
||||
ice_hwmon_exit(pf);
|
||||
|
||||
if (!ice_is_safe_mode(pf))
|
||||
ice_remove_arfs(pf);
|
||||
|
||||
@@ -7988,6 +7987,34 @@ int ice_get_rss_key(struct ice_vsi *vsi, u8 *seed)
|
||||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
* ice_get_rss - Get RSS LUT and/or key
|
||||
* @vsi: Pointer to VSI structure
|
||||
* @seed: Buffer to store the key in
|
||||
* @lut: Buffer to store the lookup table entries
|
||||
* @lut_size: Size of buffer to store the lookup table entries
|
||||
*
|
||||
* Return: 0 on success, negative on failure
|
||||
*/
|
||||
int ice_get_rss(struct ice_vsi *vsi, u8 *seed, u8 *lut, u16 lut_size)
|
||||
{
|
||||
int err;
|
||||
|
||||
if (seed) {
|
||||
err = ice_get_rss_key(vsi, seed);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
|
||||
if (lut) {
|
||||
err = ice_get_rss_lut(vsi, lut, lut_size);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* ice_set_rss_hfunc - Set RSS HASH function
|
||||
* @vsi: Pointer to VSI structure
|
||||
|
||||
@@ -108,11 +108,11 @@ static u64 idpf_ptp_read_src_clk_reg_direct(struct idpf_adapter *adapter,
|
||||
ptp_read_system_prets(sts);
|
||||
|
||||
idpf_ptp_enable_shtime(adapter);
|
||||
lo = readl(ptp->dev_clk_regs.dev_clk_ns_l);
|
||||
|
||||
/* Read the system timestamp post PHC read */
|
||||
ptp_read_system_postts(sts);
|
||||
|
||||
lo = readl(ptp->dev_clk_regs.dev_clk_ns_l);
|
||||
hi = readl(ptp->dev_clk_regs.dev_clk_ns_h);
|
||||
|
||||
spin_unlock(&ptp->read_dev_clk_lock);
|
||||
|
||||
Reference in New Issue
Block a user