From c8c4f71efe75e49cb19a0b36f393430be7f83ea7 Mon Sep 17 00:00:00 2001 From: Michal Berger Date: Wed, 6 May 2020 21:43:50 +0200 Subject: [PATCH] gen_nvme: Be FreeBSD friendly Since sysfs is not used by the FreeBSD the following error can be seen each time gen_nvme.sh is run: grep: /sys/bus/pci/devices/$bdf/uevent: No such file or directory Avoid that by looking up the pci address in a way specific to FreeBSD. Change-Id: If81e71cece52c2f27dcf68f7a7eba3dd7d8ce10f Signed-off-by: Michal Berger Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/2227 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Tomasz Zawadzki Reviewed-by: Jim Harris --- scripts/gen_nvme.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/scripts/gen_nvme.sh b/scripts/gen_nvme.sh index 150e71b45..6e1f5b517 100755 --- a/scripts/gen_nvme.sh +++ b/scripts/gen_nvme.sh @@ -39,10 +39,11 @@ bdfs=() # then most likely PCI_WHITELIST option was used for setup.sh # and we do not want to use that disk. for bdf in $(iter_pci_class_code 01 08 02); do - driver=$(grep DRIVER /sys/bus/pci/devices/$bdf/uevent | awk -F"=" '{print $2}') - if [ "$driver" != "nvme" ]; then - bdfs+=("$bdf") + if [[ -e /sys/bus/pci/drivers/nvme/$bdf ]] \ + || [[ $(uname -s) == FreeBSD && $(pciconf -l "pci$bdf") == nvme* ]]; then + continue fi + bdfs+=("$bdf") done if [ "$1" = "--json" ]; then