On 04/16, Haiyue Wang wrote: >Align the package file search sequence with PF only for DCF mode. Get >the DSN through the virtual channel firstly to check the package file >accessible. > >Signed-off-by: Haiyue Wang <haiyue.w...@intel.com> >--- > drivers/net/ice/ice_dcf_parent.c | 30 ++++++++++++++++++++++++++---- > 1 file changed, 26 insertions(+), 4 deletions(-) > >diff --git a/drivers/net/ice/ice_dcf_parent.c >b/drivers/net/ice/ice_dcf_parent.c >index e05b6b3e5..d4b4ededb 100644 >--- a/drivers/net/ice/ice_dcf_parent.c >+++ b/drivers/net/ice/ice_dcf_parent.c >@@ -226,12 +226,34 @@ ice_dcf_request_pkg_name(struct ice_hw *hw, char >*pkg_name) > { > struct ice_dcf_adapter *dcf_adapter = > container_of(hw, struct ice_dcf_adapter, parent.hw); >+ struct virtchnl_pkg_info pkg_info; >+ struct dcf_virtchnl_cmd vc_cmd; >+ uint64_t dsn; > >- /* TODO: check with DSN firstly by iAVF */ >- PMD_INIT_LOG(DEBUG, >- "DCF VSI_ID = %u", >- dcf_adapter->real_hw.vsi_id); >+ vc_cmd.v_op = VIRTCHNL_OP_DCF_GET_PKG_INFO; >+ vc_cmd.req_msglen = 0; >+ vc_cmd.req_msg = NULL; >+ vc_cmd.rsp_buflen = sizeof(pkg_info); >+ vc_cmd.rsp_msgbuf = (uint8_t *)&pkg_info; > >+ if (ice_dcf_execute_virtchnl_cmd(&dcf_adapter->real_hw, &vc_cmd)) >+ goto pkg_file_direct; >+ >+ rte_memcpy(&dsn, pkg_info.dsn, sizeof(dsn)); >+ >+ snprintf(pkg_name, ICE_MAX_PKG_FILENAME_SIZE, >+ ICE_PKG_FILE_SEARCH_PATH_UPDATES "ice-%016llX.pkg", >+ (unsigned long long)dsn); >+ if (!access(pkg_name, 0)) >+ return 0; >+ >+ snprintf(pkg_name, ICE_MAX_PKG_FILENAME_SIZE, >+ ICE_PKG_FILE_SEARCH_PATH_DEFAULT "ice-%016llX.pkg", >+ (unsigned long long)dsn); >+ if (!access(pkg_name, 0)) >+ return 0; >+ >+pkg_file_direct: > snprintf(pkg_name, > ICE_MAX_PKG_FILENAME_SIZE, "%s", ICE_PKG_FILE_UPDATES); > if (!access(pkg_name, 0)) >-- >2.26.1 >
Applied to dpdk-next-net-intel, Thanks.