• Michal Schmidt's avatar
    ice: always add legacy 32byte RXDID in supported_rxdids · c070e51d
    Michal Schmidt authored
    When the PF and VF drivers both support flexible rx descriptors and have
    negotiated the VIRTCHNL_VF_OFFLOAD_RX_FLEX_DESC capability, the VF driver
    queries the PF for the list of supported descriptor formats
    (VIRTCHNL_OP_GET_SUPPORTED_RXDIDS). The PF driver is supposed to set the
    supported_rxdids bits that correspond to the descriptor formats the
    firmware implements. The legacy 32-byte rx desc format is always
    supported, even though it is not expressed in GLFLXP_RXDID_FLAGS.
    
    The ice driver does not advertise the legacy 32-byte rx desc support,
    which leads to this failure to bring up the VF using the Intel
    out-of-tree iavf driver:
     iavf 0000:41:01.0: PF does not list support for default Rx descriptor format
     ...
     iavf 0000:41:01.0: PF returned error -5 (VIRTCHNL_STATUS_ERR_PARAM) to our request 6
    
    The in-tree iavf driver does not expose this bug, because it does not
    yet implement VIRTCHNL_VF_OFFLOAD_RX_FLEX_DESC.
    
    The ice driver must always set the ICE_RXDID_LEGACY_1 bit in
    supported_rxdids. The Intel out-of-tree ice driver and the ice driver in
    DPDK both do this.
    
    I copied this piece of the code and the comment text from the Intel
    out-of-tree driver.
    
    Fixes: e753df8f ("ice: Add support Flex RXD")
    Signed-off-by: default avatarMichal Schmidt <mschmidt@redhat.com>
    Reviewed-by: default avatarPrzemek Kitszel <przemyslaw.kitszel@intel.com>
    Link: https://lore.kernel.org/r/20230920115439.61172-1-mschmidt@redhat.comSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
    c070e51d
ice_virtchnl.c 114 KB