On 11/7/23 18:38, Dave Ertman wrote:
There is an error when an interface has the following conditions:
- PF is in an aggregate (bond)
- PF has VFs created on it
- bond is in a state where it is failed-over to the secondary interface
- A VF reset is issued on one or more of those VFs

The issue is generated by the originating PF trying to rebuild or
reconfigure the VF resources.  Since the bond is failed over to the
secondary interface the queue contexts are in a modified state.

To fix this issue, have the originating interface reclaim its resources
prior to the tear-down and rebuild or reconfigure.  Then after the process
is complete, move the resources back to the currently active interface.

There are multiple paths that can be used depending on what triggered the
event, so create a helper function to move the queues and use paired calls
to the helper (back to origin, process, then move back to active interface)
under the same lag_mutex lock.

Fixes: 1e0f9881ef79 ("ice: Flesh out implementation of support for SRIOV on bonded 
interface")
Signed-off-by: Dave Ertman <david.m.ert...@intel.com>
---
  drivers/net/ethernet/intel/ice/ice_lag.c      | 42 +++++++++++++++++++
  drivers/net/ethernet/intel/ice/ice_lag.h      |  1 +
  drivers/net/ethernet/intel/ice/ice_vf_lib.c   | 20 +++++++++
  drivers/net/ethernet/intel/ice/ice_virtchnl.c | 25 +++++++++++
  4 files changed, 88 insertions(+)

you should carry Reviewed-by (and Tested-by if provided) tags from
earlier versions and from our e1000 ML too,
Reviewed-by: Przemek Kitszel <przemyslaw.kits...@intel.com>

in the future you have to also CC netdev ML and main LKML for ice
contributions
_______________________________________________
Intel-wired-lan mailing list
Intel-wired-lan@osuosl.org
https://lists.osuosl.org/mailman/listinfo/intel-wired-lan

Reply via email to