Skip to content

Commit 85c7ca9

Browse files
committed
Merge branch 'intel-wired-lan-driver-updates-2025-02-24-ice-idpf-iavf-ixgbe'
Tony Nguyen says: ==================== Intel Wired LAN Driver Updates 2025-02-24 (ice, idpf, iavf, ixgbe) For ice: Marcin moves incorrect call placement to clean up VF mailbox tracking and changes call for configuring default VSI to allow for existing rule. For iavf: Jake fixes a circular locking dependency. For ixgbe: Piotr corrects condition for determining media cage presence. ==================== Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
2 parents 5568e4c + b1e44b4 commit 85c7ca9

File tree

6 files changed

+20
-11
lines changed

6 files changed

+20
-11
lines changed

drivers/net/ethernet/intel/iavf/iavf_main.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1983,7 +1983,7 @@ static int iavf_reinit_interrupt_scheme(struct iavf_adapter *adapter, bool runni
19831983
static void iavf_finish_config(struct work_struct *work)
19841984
{
19851985
struct iavf_adapter *adapter;
1986-
bool netdev_released = false;
1986+
bool locks_released = false;
19871987
int pairs, err;
19881988

19891989
adapter = container_of(work, struct iavf_adapter, finish_config);
@@ -2012,19 +2012,22 @@ static void iavf_finish_config(struct work_struct *work)
20122012
netif_set_real_num_tx_queues(adapter->netdev, pairs);
20132013

20142014
if (adapter->netdev->reg_state != NETREG_REGISTERED) {
2015+
mutex_unlock(&adapter->crit_lock);
20152016
netdev_unlock(adapter->netdev);
2016-
netdev_released = true;
2017+
locks_released = true;
20172018
err = register_netdevice(adapter->netdev);
20182019
if (err) {
20192020
dev_err(&adapter->pdev->dev, "Unable to register netdev (%d)\n",
20202021
err);
20212022

20222023
/* go back and try again.*/
2024+
mutex_lock(&adapter->crit_lock);
20232025
iavf_free_rss(adapter);
20242026
iavf_free_misc_irq(adapter);
20252027
iavf_reset_interrupt_capability(adapter);
20262028
iavf_change_state(adapter,
20272029
__IAVF_INIT_CONFIG_ADAPTER);
2030+
mutex_unlock(&adapter->crit_lock);
20282031
goto out;
20292032
}
20302033
}
@@ -2040,9 +2043,10 @@ static void iavf_finish_config(struct work_struct *work)
20402043
}
20412044

20422045
out:
2043-
mutex_unlock(&adapter->crit_lock);
2044-
if (!netdev_released)
2046+
if (!locks_released) {
2047+
mutex_unlock(&adapter->crit_lock);
20452048
netdev_unlock(adapter->netdev);
2049+
}
20462050
rtnl_unlock();
20472051
}
20482052

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ static int ice_eswitch_setup_env(struct ice_pf *pf)
3838
if (ice_vsi_add_vlan_zero(uplink_vsi))
3939
goto err_vlan_zero;
4040

41-
if (ice_cfg_dflt_vsi(uplink_vsi->port_info, uplink_vsi->idx, true,
42-
ICE_FLTR_RX))
41+
if (ice_set_dflt_vsi(uplink_vsi))
4342
goto err_def_rx;
4443

4544
if (ice_cfg_dflt_vsi(uplink_vsi->port_info, uplink_vsi->idx, true,

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

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ static void ice_free_vf_entries(struct ice_pf *pf)
3636

3737
hash_for_each_safe(vfs->table, bkt, tmp, vf, entry) {
3838
hash_del_rcu(&vf->entry);
39+
ice_deinitialize_vf_entry(vf);
3940
ice_put_vf(vf);
4041
}
4142
}
@@ -193,10 +194,6 @@ void ice_free_vfs(struct ice_pf *pf)
193194
wr32(hw, GLGEN_VFLRSTAT(reg_idx), BIT(bit_idx));
194195
}
195196

196-
/* clear malicious info since the VF is getting released */
197-
if (!ice_is_feature_supported(pf, ICE_F_MBX_LIMIT))
198-
list_del(&vf->mbx_info.list_entry);
199-
200197
mutex_unlock(&vf->cfg_lock);
201198
}
202199

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1036,6 +1036,14 @@ void ice_initialize_vf_entry(struct ice_vf *vf)
10361036
mutex_init(&vf->cfg_lock);
10371037
}
10381038

1039+
void ice_deinitialize_vf_entry(struct ice_vf *vf)
1040+
{
1041+
struct ice_pf *pf = vf->pf;
1042+
1043+
if (!ice_is_feature_supported(pf, ICE_F_MBX_LIMIT))
1044+
list_del(&vf->mbx_info.list_entry);
1045+
}
1046+
10391047
/**
10401048
* ice_dis_vf_qs - Disable the VF queues
10411049
* @vf: pointer to the VF structure

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#endif
2525

2626
void ice_initialize_vf_entry(struct ice_vf *vf);
27+
void ice_deinitialize_vf_entry(struct ice_vf *vf);
2728
void ice_dis_vf_qs(struct ice_vf *vf);
2829
int ice_check_vf_init(struct ice_vf *vf);
2930
enum virtchnl_status_code ice_err_to_virt_err(int err);

drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1122,7 +1122,7 @@ static bool ixgbe_is_media_cage_present(struct ixgbe_hw *hw)
11221122
* returns error (ENOENT), then no cage present. If no cage present then
11231123
* connection type is backplane or BASE-T.
11241124
*/
1125-
return ixgbe_aci_get_netlist_node(hw, cmd, NULL, NULL);
1125+
return !ixgbe_aci_get_netlist_node(hw, cmd, NULL, NULL);
11261126
}
11271127

11281128
/**

0 commit comments

Comments
 (0)