Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue
Tony Nguyen says: ==================== Intel Wired LAN Driver Updates 2021-10-14 Brett ensures RDMA nodes are removed during release and rebuild. He also corrects fw.mgmt.api to include the patch number for proper identification. Dave stops ida_free() being called when an IDA has not been allocated. Michal corrects the order of parameters being provided and the number of entries skipped for UDP tunnels. ==================== Link: https://lore.kernel.org/r/20211014181953.3538330-1-anthony.l.nguyen@intel.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
2151135a1f
@ -30,10 +30,11 @@ The ``ice`` driver reports the following versions
|
||||
PHY, link, etc.
|
||||
* - ``fw.mgmt.api``
|
||||
- running
|
||||
- 1.5
|
||||
- 2-digit version number of the API exported over the AdminQ by the
|
||||
management firmware. Used by the driver to identify what commands
|
||||
are supported.
|
||||
- 1.5.1
|
||||
- 3-digit version number (major.minor.patch) of the API exported over
|
||||
the AdminQ by the management firmware. Used by the driver to
|
||||
identify what commands are supported. Historical versions of the
|
||||
kernel only displayed a 2-digit version number (major.minor).
|
||||
* - ``fw.mgmt.build``
|
||||
- running
|
||||
- 0x305d955f
|
||||
|
@ -63,7 +63,8 @@ static int ice_info_fw_api(struct ice_pf *pf, struct ice_info_ctx *ctx)
|
||||
{
|
||||
struct ice_hw *hw = &pf->hw;
|
||||
|
||||
snprintf(ctx->buf, sizeof(ctx->buf), "%u.%u", hw->api_maj_ver, hw->api_min_ver);
|
||||
snprintf(ctx->buf, sizeof(ctx->buf), "%u.%u.%u", hw->api_maj_ver,
|
||||
hw->api_min_ver, hw->api_patch);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -1668,7 +1668,7 @@ static u16 ice_tunnel_idx_to_entry(struct ice_hw *hw, enum ice_tunnel_type type,
|
||||
for (i = 0; i < hw->tnl.count && i < ICE_TUNNEL_MAX_ENTRIES; i++)
|
||||
if (hw->tnl.tbl[i].valid &&
|
||||
hw->tnl.tbl[i].type == type &&
|
||||
idx--)
|
||||
idx-- == 0)
|
||||
return i;
|
||||
|
||||
WARN_ON_ONCE(1);
|
||||
@ -1828,7 +1828,7 @@ int ice_udp_tunnel_set_port(struct net_device *netdev, unsigned int table,
|
||||
u16 index;
|
||||
|
||||
tnl_type = ti->type == UDP_TUNNEL_TYPE_VXLAN ? TNL_VXLAN : TNL_GENEVE;
|
||||
index = ice_tunnel_idx_to_entry(&pf->hw, idx, tnl_type);
|
||||
index = ice_tunnel_idx_to_entry(&pf->hw, tnl_type, idx);
|
||||
|
||||
status = ice_create_tunnel(&pf->hw, index, tnl_type, ntohs(ti->port));
|
||||
if (status) {
|
||||
|
@ -2841,6 +2841,7 @@ void ice_napi_del(struct ice_vsi *vsi)
|
||||
*/
|
||||
int ice_vsi_release(struct ice_vsi *vsi)
|
||||
{
|
||||
enum ice_status err;
|
||||
struct ice_pf *pf;
|
||||
|
||||
if (!vsi->back)
|
||||
@ -2912,6 +2913,10 @@ int ice_vsi_release(struct ice_vsi *vsi)
|
||||
|
||||
ice_fltr_remove_all(vsi);
|
||||
ice_rm_vsi_lan_cfg(vsi->port_info, vsi->idx);
|
||||
err = ice_rm_vsi_rdma_cfg(vsi->port_info, vsi->idx);
|
||||
if (err)
|
||||
dev_err(ice_pf_to_dev(vsi->back), "Failed to remove RDMA scheduler config for VSI %u, err %d\n",
|
||||
vsi->vsi_num, err);
|
||||
ice_vsi_delete(vsi);
|
||||
ice_vsi_free_q_vectors(vsi);
|
||||
|
||||
@ -3092,6 +3097,10 @@ int ice_vsi_rebuild(struct ice_vsi *vsi, bool init_vsi)
|
||||
prev_num_q_vectors = ice_vsi_rebuild_get_coalesce(vsi, coalesce);
|
||||
|
||||
ice_rm_vsi_lan_cfg(vsi->port_info, vsi->idx);
|
||||
ret = ice_rm_vsi_rdma_cfg(vsi->port_info, vsi->idx);
|
||||
if (ret)
|
||||
dev_err(ice_pf_to_dev(vsi->back), "Failed to remove RDMA scheduler config for VSI %u, err %d\n",
|
||||
vsi->vsi_num, ret);
|
||||
ice_vsi_free_q_vectors(vsi);
|
||||
|
||||
/* SR-IOV determines needed MSIX resources all at once instead of per
|
||||
|
@ -4224,6 +4224,9 @@ ice_probe(struct pci_dev *pdev, const struct pci_device_id __always_unused *ent)
|
||||
if (!pf)
|
||||
return -ENOMEM;
|
||||
|
||||
/* initialize Auxiliary index to invalid value */
|
||||
pf->aux_idx = -1;
|
||||
|
||||
/* set up for high or low DMA */
|
||||
err = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64));
|
||||
if (err)
|
||||
@ -4615,7 +4618,8 @@ static void ice_remove(struct pci_dev *pdev)
|
||||
|
||||
ice_aq_cancel_waiting_tasks(pf);
|
||||
ice_unplug_aux_dev(pf);
|
||||
ida_free(&ice_aux_ida, pf->aux_idx);
|
||||
if (pf->aux_idx >= 0)
|
||||
ida_free(&ice_aux_ida, pf->aux_idx);
|
||||
set_bit(ICE_DOWN, pf->state);
|
||||
|
||||
mutex_destroy(&(&pf->hw)->fdir_fltr_lock);
|
||||
|
@ -2070,6 +2070,19 @@ enum ice_status ice_rm_vsi_lan_cfg(struct ice_port_info *pi, u16 vsi_handle)
|
||||
return ice_sched_rm_vsi_cfg(pi, vsi_handle, ICE_SCHED_NODE_OWNER_LAN);
|
||||
}
|
||||
|
||||
/**
|
||||
* ice_rm_vsi_rdma_cfg - remove VSI and its RDMA children nodes
|
||||
* @pi: port information structure
|
||||
* @vsi_handle: software VSI handle
|
||||
*
|
||||
* This function clears the VSI and its RDMA children nodes from scheduler tree
|
||||
* for all TCs.
|
||||
*/
|
||||
enum ice_status ice_rm_vsi_rdma_cfg(struct ice_port_info *pi, u16 vsi_handle)
|
||||
{
|
||||
return ice_sched_rm_vsi_cfg(pi, vsi_handle, ICE_SCHED_NODE_OWNER_RDMA);
|
||||
}
|
||||
|
||||
/**
|
||||
* ice_get_agg_info - get the aggregator ID
|
||||
* @hw: pointer to the hardware structure
|
||||
|
@ -89,6 +89,7 @@ enum ice_status
|
||||
ice_sched_cfg_vsi(struct ice_port_info *pi, u16 vsi_handle, u8 tc, u16 maxqs,
|
||||
u8 owner, bool enable);
|
||||
enum ice_status ice_rm_vsi_lan_cfg(struct ice_port_info *pi, u16 vsi_handle);
|
||||
enum ice_status ice_rm_vsi_rdma_cfg(struct ice_port_info *pi, u16 vsi_handle);
|
||||
|
||||
/* Tx scheduler rate limiter functions */
|
||||
enum ice_status
|
||||
|
Loading…
Reference in New Issue
Block a user