On 10/6/2023 2:02 PM, Dave Ertman wrote:
> If an attribute of an aggregate interface disqualifies it from supporting
> SRIOV, the driver will unwind the SRIOV support. Currently the driver is
> clearing the feature bit for all interfaces in the aggregate, but this is
> not allowing the other interfaces to unwind successfully on driver unload.
>
> Only clear the feature bit for the interface that is currently unwinding.
>
So, previously we had to go into each netdev associated with this bond
and disable SR-IOV? How does that happen now when we're doing this
disable on the non-unload case? Is that handled by having some other
flow? Does it just not need to happen at all and that was always a bug
to it this way?
Thanks,
Jake
> Fixes: bf65da2eb279 ("ice: enforce interface eligibility and add messaging
> for SRIOV LAG")
> Signed-off-by: Dave Ertman <[email protected]>
> ---
> drivers/net/ethernet/intel/ice/ice_lag.c | 11 +++--------
> 1 file changed, 3 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/ice/ice_lag.c
> b/drivers/net/ethernet/intel/ice/ice_lag.c
> index 2c96d1883e19..c9071228b1ea 100644
> --- a/drivers/net/ethernet/intel/ice/ice_lag.c
> +++ b/drivers/net/ethernet/intel/ice/ice_lag.c
> @@ -1513,17 +1513,12 @@ static void ice_lag_chk_disabled_bond(struct ice_lag
> *lag, void *ptr)
> */
> static void ice_lag_disable_sriov_bond(struct ice_lag *lag)
> {
> - struct ice_lag_netdev_list *entry;
> struct ice_netdev_priv *np;
> - struct net_device *netdev;
> struct ice_pf *pf;
>
> - list_for_each_entry(entry, lag->netdev_head, node) {
> - netdev = entry->netdev;
> - np = netdev_priv(netdev);
> - pf = np->vsi->back;
> -
> - ice_clear_feature_support(pf, ICE_F_SRIOV_LAG);
> + np = netdev_priv(lag->netdev);
> + pf = np->vsi->back;
> + ice_clear_feature_support(pf, ICE_F_SRIOV_LAG);
> }
> }
>
_______________________________________________
Intel-wired-lan mailing list
[email protected]
https://lists.osuosl.org/mailman/listinfo/intel-wired-lan