• Jacob Keller's avatar
    ice: introduce VF operations structure for reset flows · 9c6f7878
    Jacob Keller authored
    The ice driver currently supports virtualization using Single Root IOV,
    with code in the ice_sriov.c file. In the future, we plan to also
    implement support for Scalable IOV, which uses slightly different
    hardware implementations for some functionality.
    
    To eventually allow this, we introduce a new ice_vf_ops structure which
    will contain the basic operations that are different between the two IOV
    implementations. This primarily includes logic for how to handle the VF
    reset registers, as well as what to do before and after rebuilding the
    VF's VSI.
    
    Implement these ops structures and call the ops table instead of
    directly calling the SR-IOV specific function. This will allow us to
    easily add the Scalable IOV implementation in the future. Additionally,
    it helps separate the generalized VF logic from SR-IOV specifics. This
    change allows us to move the reset logic out of ice_sriov.c and into
    ice_vf_lib.c without placing any Single Root specific details into the
    generic file.
    Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
    Tested-by: default avatarKonrad Jankowski <konrad0.jankowski@intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    9c6f7878
ice_sriov.c 169 KB