ice: fix getting UDP tunnel entry
[ Upstream commit e4c2efa1393c6f1fbfabf91d1d83fcb4ae691ccb ]
Correct parameters order in call to ice_tunnel_idx_to_entry function.
Entry in sparse port table is correct when the idx is 0. For idx 1 one
correct entry should be skipped, for idx 2 two of them should be skipped
etc. Change if condition to be true when idx is 0, which means that
previous valid entry of this tunnel type were skipped.
Fixes: b20e6c17c4
("ice: convert to new udp_tunnel infrastructure")
Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Tested-by: Gurucharan G <gurucharanx.g@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
842fce4319
commit
69ea08c1b5
@ -1669,7 +1669,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++)
|
for (i = 0; i < hw->tnl.count && i < ICE_TUNNEL_MAX_ENTRIES; i++)
|
||||||
if (hw->tnl.tbl[i].valid &&
|
if (hw->tnl.tbl[i].valid &&
|
||||||
hw->tnl.tbl[i].type == type &&
|
hw->tnl.tbl[i].type == type &&
|
||||||
idx--)
|
idx-- == 0)
|
||||||
return i;
|
return i;
|
||||||
|
|
||||||
WARN_ON_ONCE(1);
|
WARN_ON_ONCE(1);
|
||||||
@ -1829,7 +1829,7 @@ int ice_udp_tunnel_set_port(struct net_device *netdev, unsigned int table,
|
|||||||
u16 index;
|
u16 index;
|
||||||
|
|
||||||
tnl_type = ti->type == UDP_TUNNEL_TYPE_VXLAN ? TNL_VXLAN : TNL_GENEVE;
|
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));
|
status = ice_create_tunnel(&pf->hw, index, tnl_type, ntohs(ti->port));
|
||||||
if (status) {
|
if (status) {
|
||||||
|
Loading…
Reference in New Issue
Block a user