Skip to content

Commit 0f00a89

Browse files
Michal Swiatkowskianguy11
authored andcommitted
ice: check if SF is ready in ethtool ops
Now there is another type of port representor. Correct checking if parent device is ready to reflect also new PR type. Reviewed-by: Simon Horman <[email protected]> Reviewed-by: Wojciech Drewek <[email protected]> Signed-off-by: Michal Swiatkowski <[email protected]> Tested-by: Rafal Romanowski <[email protected]> Signed-off-by: Tony Nguyen <[email protected]>
1 parent ef25090 commit 0f00a89

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4412,7 +4412,7 @@ ice_repr_get_drvinfo(struct net_device *netdev,
44124412
{
44134413
struct ice_repr *repr = ice_netdev_to_repr(netdev);
44144414

4415-
if (ice_check_vf_ready_for_cfg(repr->vf))
4415+
if (repr->ops.ready(repr))
44164416
return;
44174417

44184418
__ice_get_drvinfo(netdev, drvinfo, repr->src_vsi);
@@ -4424,8 +4424,7 @@ ice_repr_get_strings(struct net_device *netdev, u32 stringset, u8 *data)
44244424
struct ice_repr *repr = ice_netdev_to_repr(netdev);
44254425

44264426
/* for port representors only ETH_SS_STATS is supported */
4427-
if (ice_check_vf_ready_for_cfg(repr->vf) ||
4428-
stringset != ETH_SS_STATS)
4427+
if (repr->ops.ready(repr) || stringset != ETH_SS_STATS)
44294428
return;
44304429

44314430
__ice_get_strings(netdev, stringset, data, repr->src_vsi);
@@ -4438,7 +4437,7 @@ ice_repr_get_ethtool_stats(struct net_device *netdev,
44384437
{
44394438
struct ice_repr *repr = ice_netdev_to_repr(netdev);
44404439

4441-
if (ice_check_vf_ready_for_cfg(repr->vf))
4440+
if (repr->ops.ready(repr))
44424441
return;
44434442

44444443
__ice_get_ethtool_stats(netdev, stats, data, repr->src_vsi);

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,16 @@ ice_repr_reg_netdev(struct net_device *netdev)
283283
return register_netdev(netdev);
284284
}
285285

286+
static int ice_repr_ready_vf(struct ice_repr *repr)
287+
{
288+
return !ice_check_vf_ready_for_cfg(repr->vf);
289+
}
290+
291+
static int ice_repr_ready_sf(struct ice_repr *repr)
292+
{
293+
return !repr->sf->active;
294+
}
295+
286296
/**
287297
* ice_repr_destroy - remove representor from VF
288298
* @repr: pointer to representor structure
@@ -420,6 +430,7 @@ struct ice_repr *ice_repr_create_vf(struct ice_vf *vf)
420430
repr->vf = vf;
421431
repr->ops.add = ice_repr_add_vf;
422432
repr->ops.rem = ice_repr_rem_vf;
433+
repr->ops.ready = ice_repr_ready_vf;
423434

424435
ether_addr_copy(repr->parent_mac, vf->hw_lan_addr);
425436

@@ -466,6 +477,7 @@ struct ice_repr *ice_repr_create_sf(struct ice_dynamic_port *sf)
466477
repr->sf = sf;
467478
repr->ops.add = ice_repr_add_sf;
468479
repr->ops.rem = ice_repr_rem_sf;
480+
repr->ops.ready = ice_repr_ready_sf;
469481

470482
ether_addr_copy(repr->parent_mac, sf->hw_addr);
471483

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ struct ice_repr {
3636
struct {
3737
int (*add)(struct ice_repr *repr);
3838
void (*rem)(struct ice_repr *repr);
39+
int (*ready)(struct ice_repr *repr);
3940
} ops;
4041
};
4142

0 commit comments

Comments
 (0)