> -----Original Message----- > From: Ye, Xiaolong <xiaolong...@intel.com> > Sent: Friday, April 17, 2020 12:51 > To: Wang, Haiyue <haiyue.w...@intel.com> > Cc: dev@dpdk.org; Zhang, Qi Z <qi.z.zh...@intel.com>; Yang, Qiming > <qiming.y...@intel.com> > Subject: Re: [PATCH v1] net/ice: check the DSN package file firstly > > 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. > > check the accessibility of the package file?
This looks better. > > > > >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)); > > Seems dsn var is redundant, what about using pkg_info.dsn directly? > pkg_info.dsn is defined as dsn[8], which is designed to align with old driver. ;-) Now the ice kernel module uses 64bit to format: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ceb2f00707f97f8f881d6f253e7123bf5b17d308 > >+ > >+ 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 > >