mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
ice: store representor ID in bridge port
It is used to get representor structure during cleaning. Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com> Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> Reviewed-by: Simon Horman <horms@kernel.org> Tested-by: Sujai Buvaneswaran <sujai.buvaneswaran@intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
This commit is contained in:
parent
3226607302
commit
639ac8ce8b
|
|
@ -896,7 +896,8 @@ ice_eswitch_br_port_deinit(struct ice_esw_br *bridge,
|
|||
if (br_port->type == ICE_ESWITCH_BR_UPLINK_PORT && vsi->back) {
|
||||
vsi->back->br_port = NULL;
|
||||
} else {
|
||||
struct ice_repr *repr = ice_repr_get_by_vsi(vsi);
|
||||
struct ice_repr *repr =
|
||||
ice_repr_get(vsi->back, br_port->repr_id);
|
||||
|
||||
if (repr)
|
||||
repr->br_port = NULL;
|
||||
|
|
@ -937,6 +938,7 @@ ice_eswitch_br_vf_repr_port_init(struct ice_esw_br *bridge,
|
|||
br_port->vsi = repr->src_vsi;
|
||||
br_port->vsi_idx = br_port->vsi->idx;
|
||||
br_port->type = ICE_ESWITCH_BR_VF_REPR_PORT;
|
||||
br_port->repr_id = repr->id;
|
||||
repr->br_port = br_port;
|
||||
|
||||
err = xa_insert(&bridge->ports, br_port->vsi_idx, br_port, GFP_KERNEL);
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ struct ice_esw_br_port {
|
|||
enum ice_esw_br_port_type type;
|
||||
u16 vsi_idx;
|
||||
u16 pvid;
|
||||
u32 repr_id;
|
||||
struct xarray vlans;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -415,12 +415,9 @@ struct ice_repr *ice_repr_add_vf(struct ice_vf *vf)
|
|||
return ERR_PTR(err);
|
||||
}
|
||||
|
||||
struct ice_repr *ice_repr_get_by_vsi(struct ice_vsi *vsi)
|
||||
struct ice_repr *ice_repr_get(struct ice_pf *pf, u32 id)
|
||||
{
|
||||
if (!vsi->vf)
|
||||
return NULL;
|
||||
|
||||
return xa_load(&vsi->back->eswitch.reprs, vsi->vf->repr_id);
|
||||
return xa_load(&pf->eswitch.reprs, id);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -35,9 +35,8 @@ void ice_repr_stop_tx_queues(struct ice_repr *repr);
|
|||
struct ice_repr *ice_netdev_to_repr(const struct net_device *netdev);
|
||||
bool ice_is_port_repr_netdev(const struct net_device *netdev);
|
||||
|
||||
struct ice_repr *ice_repr_get_by_vsi(struct ice_vsi *vsi);
|
||||
|
||||
void ice_repr_inc_tx_stats(struct ice_repr *repr, unsigned int len,
|
||||
int xmit_status);
|
||||
void ice_repr_inc_rx_stats(struct net_device *netdev, unsigned int len);
|
||||
struct ice_repr *ice_repr_get(struct ice_pf *pf, u32 id);
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user