• Jacob Keller's avatar
    ice: replace ice_vf_recreate_vsi() with ice_vf_reconfig_vsi() · 2a2cb4c6
    Jacob Keller authored
    The ice_vf_create_vsi() function and its VF ops helper introduced by commit
    a4c785e8162e ("ice: convert vf_ops .vsi_rebuild to .create_vsi") are used
    during an individual VF reset to re-create the VSI. This was done in order
    to ensure that the VSI gets properly reconfigured within the hardware.
    
    This is somewhat heavy handed as we completely release the VSI memory and
    structure, and then create a new VSI. This can also potentially force a
    change of the VSI index as we will re-use the first open slot in the VSI
    array which may not be the same.
    
    As part of implementing devlink reload, commit 6624e780 ("ice: split
    ice_vsi_setup into smaller functions") split VSI setup into smaller
    functions, introducing both ice_vsi_cfg() and ice_vsi_decfg() which can be
    used to configure or deconfigure an existing software VSI structure.
    
    Rather than completely removing the VSI and adding a new one using the
    .create_vsi() VF operation, simply use ice_vsi_decfg() to remove the
    current configuration. Save the VSI type and then call ice_vsi_cfg() to
    reconfigure the VSI as the same type that it was before.
    
    The existing reset logic assumes that all hardware filters will be removed,
    so also call ice_fltr_remove_all() before re-configuring the VSI.
    
    This new operation does not re-create the VSI, so rename it to
    ice_vf_reconfig_vsi().
    
    The new approach can safely share the exact same flow for both SR-IOV VFs
    as well as the Scalable IOV VFs being worked on. This uses less code and is
    a better abstraction over fully deleting the VSI and adding a new one.
    Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
    Reviewed-by: default avatarPrzemek Kitszel <przemyslaw.kitszel@intel.com>
    Reviewed-by: default avatarPetr Oros <poros@redhat.com>
    Tested-by: default avatarRafal Romanowski <rafal.romanowski@intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    2a2cb4c6
ice_vf_lib.c 34.8 KB