diff --git a/test/common/autotest_common.sh b/test/common/autotest_common.sh index a26eb68dc..2e043b184 100755 --- a/test/common/autotest_common.sh +++ b/test/common/autotest_common.sh @@ -1175,6 +1175,15 @@ function get_nvme_name_from_bdf() { printf '%s\n' "${blkname[@]}" } +function get_nvme_ctrlr_from_bdf() { + bdf_sysfs_path=$(readlink -f /sys/class/nvme/nvme* | grep "$1/nvme/nvme") + if [[ -z "$bdf_sysfs_path" ]]; then + return + fi + + printf '%s\n' "$(basename $bdf_sysfs_path)" +} + function opal_revert_cleanup() { $SPDK_BIN_DIR/spdk_tgt & spdk_tgt_pid=$! diff --git a/test/nvme/cuse/nvme_ns_manage_cuse.sh b/test/nvme/cuse/nvme_ns_manage_cuse.sh index ac31403f3..c1865c335 100755 --- a/test/nvme/cuse/nvme_ns_manage_cuse.sh +++ b/test/nvme/cuse/nvme_ns_manage_cuse.sh @@ -18,13 +18,10 @@ $rootdir/scripts/setup.sh reset sleep 1 for bdf in $bdfs; do - # get_nvme_name_from_bdf returns namespace device. - # We need here controller. - bdf_sysfs_path=$(readlink -f /sys/class/nvme/nvme* | grep "$bdf/nvme/nvme") - if [ -z "$bdf_sysfs_path" ]; then + nvme_name=$(get_nvme_ctrlr_from_bdf ${bdf}) + if [[ -z "$nvme_name" ]]; then continue fi - nvme_name=$(basename $bdf_sysfs_path) oacs=$($NVME_CMD id-ctrl /dev/${nvme_name} | grep oacs | cut -d: -f2) oacs_ns_manage=$((oacs & 0x8)) diff --git a/test/nvme/cuse/spdk_nvme_cli_cuse.sh b/test/nvme/cuse/spdk_nvme_cli_cuse.sh index 502c17dc6..ce1affbca 100755 --- a/test/nvme/cuse/spdk_nvme_cli_cuse.sh +++ b/test/nvme/cuse/spdk_nvme_cli_cuse.sh @@ -18,12 +18,11 @@ bdf=$(get_first_nvme_bdf) PCI_WHITELIST="${bdf}" $rootdir/scripts/setup.sh reset sleep 1 -bdf_sysfs_path=$(readlink -f /sys/class/nvme/nvme* | grep "$bdf/nvme/nvme") -if [ -z "$bdf_sysfs_path" ]; then +nvme_name=$(get_nvme_ctrlr_from_bdf ${bdf}) +if [[ -z "$nvme_name" ]]; then echo "setup.sh failed bind kernel driver to ${bdf}" return 1 fi -nvme_name=$(basename $bdf_sysfs_path) set +e diff --git a/test/nvme/cuse/spdk_smartctl_cuse.sh b/test/nvme/cuse/spdk_smartctl_cuse.sh index 585962468..a92ca1199 100755 --- a/test/nvme/cuse/spdk_smartctl_cuse.sh +++ b/test/nvme/cuse/spdk_smartctl_cuse.sh @@ -12,12 +12,11 @@ bdf=$(get_first_nvme_bdf) PCI_WHITELIST="${bdf}" $rootdir/scripts/setup.sh reset sleep 1 -bdf_sysfs_path=$(readlink -f /sys/class/nvme/nvme* | grep "$bdf/nvme/nvme") -if [ -z "$bdf_sysfs_path" ]; then +nvme_name=$(get_nvme_ctrlr_from_bdf ${bdf}) +if [[ -z "$nvme_name" ]]; then echo "setup.sh failed bind kernel driver to ${bdf}" exit 1 fi -nvme_name=$(basename $bdf_sysfs_path) KERNEL_SMART_JSON=$(${SMARTCTL_CMD} --json=g -a /dev/${nvme_name} | grep -v "/dev/${nvme_name}" | sort || true)