From d783ad1f29d0a2fa43855c0ffa3bc426ad81f08b Mon Sep 17 00:00:00 2001 From: Pawel Wodkowski Date: Wed, 16 Aug 2017 18:05:25 +0200 Subject: [PATCH] setup.sh: fix linux_iter_pci_class_code and linux_iter_pci_dev_id Another atempt to fix setup.sh On Ubuntu 16.04 that use GNU Awk 4.1.3. Eg when subsystem vendor name and subsystem name are empty: $ lspci -mm -n -D ... 0000:00:05.0 "0880" "8086" "0e28" -r04 "8086" "3582" 0000:00:05.1 "0880" "8086" "0e29" -r04 "" "" 0000:00:05.2 "0880" "8086" "0e2a" -r04 "8086" "3582" ... tr -d '"' part is brekaing whole awk script. So lets try to escape vendor and device ID to comapre them as whole string. Change-Id: Ic41e82c41347c6e0a8246b445f86eddf56780089 Signed-off-by: Pawel Wodkowski Reviewed-on: https://review.gerrithub.io/374462 Tested-by: SPDK Automated Test System Reviewed-by: Dariusz Stojaczyk Reviewed-by: Jim Harris Reviewed-by: Ben Walker --- scripts/setup.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/setup.sh b/scripts/setup.sh index d3c136a01..a1fc5a47c 100755 --- a/scripts/setup.sh +++ b/scripts/setup.sh @@ -6,13 +6,13 @@ rootdir=$(readlink -f $(dirname $0))/.. function linux_iter_pci_class_code { # Argument is the class code - lspci -mm -n -D | tr -d '"' | awk -v cc="$1" -F " " '{if (cc ~ $2) print $1}' + lspci -mm -n -D | awk -v cc="\"$1\"" -F " " '{if (cc ~ $2) print $1}' | tr -d '"' } function linux_iter_pci_dev_id { # Argument 1 is the vendor id # Argument 2 is the device id - lspci -mm -n -D | tr -d '"' | awk -v ven="$1" -v dev="$2" -F " " '{if (ven ~ $3 && dev ~ $4) print $1}' + lspci -mm -n -D | awk -v ven="\"$1\"" -v dev="\"$2\"" -F " " '{if (ven ~ $3 && dev ~ $4) print $1}' | tr -d '"' } function linux_bind_driver() {