In the previous implementation, when the user did not enter any value in "/sys/module/firmware_class/parameters/path", it would incorrectly search for DDP packages under "/".
This commit fixes this issue. Fixes: 9207f93640a7 ("net/ice: support custom search path for DDP package") Signed-off-by: Zhichao Zeng <zhichaox.z...@intel.com> v2: change return code --- drivers/net/ice/ice_ethdev.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index d5e94a6685..cf06ac58ce 100644 --- a/drivers/net/ice/ice_ethdev.c +++ b/drivers/net/ice/ice_ethdev.c @@ -1917,18 +1917,14 @@ static int ice_read_customized_path(char *pkg_file, uint16_t buff_len) } n = read(fp, pkg_file, buff_len - 1); - if (n == 0) { - close(fp); - return -EIO; + if (n > 0) { + if (pkg_file[n - 1] == '\n') + n--; + pkg_file[n] = '\0'; } - if (pkg_file[n - 1] == '\n') - n--; - - pkg_file[n] = '\0'; - close(fp); - return 0; + return n; } int ice_load_pkg(struct ice_adapter *adapter, bool use_dsn, uint64_t dsn) @@ -1956,7 +1952,7 @@ int ice_load_pkg(struct ice_adapter *adapter, bool use_dsn, uint64_t dsn) snprintf(opt_ddp_filename, ICE_MAX_PKG_FILENAME_SIZE, "ice-%016" PRIx64 ".pkg", dsn); - if (ice_read_customized_path(customized_path, ICE_MAX_PKG_FILENAME_SIZE) == 0) { + if (ice_read_customized_path(customized_path, ICE_MAX_PKG_FILENAME_SIZE) > 0) { if (use_dsn) { snprintf(pkg_file, RTE_DIM(pkg_file), "%s/%s", customized_path, opt_ddp_filename); -- 2.34.1