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 VFsThe 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 <[email protected]> --- 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 <[email protected]> in the future you have to also CC netdev ML and main LKML for ice contributions _______________________________________________ Intel-wired-lan mailing list [email protected] https://lists.osuosl.org/mailman/listinfo/intel-wired-lan
