From 4aa1db0dce921a3b95a83b0790165a50b84497af Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vin=C3=ADcius=20Ferr=C3=A3o?=
<2031761+viniciusferrao@users.noreply.github.com>
Date: Mon, 31 Aug 2026 19:53:01 -0300
Subject: [PATCH] refactor(getadapter): share PCI adapter scan
---
xCAT-genesis-scripts/usr/bin/getadapter | 51 +++++++++++--------------
1 file changed, 22 insertions(+), 29 deletions(-)
diff --git a/xCAT-genesis-scripts/usr/bin/getadapter b/xCAT-genesis-scripts/usr/bin/getadapter
index b090ba86e..717b70540 100755
--- a/xCAT-genesis-scripts/usr/bin/getadapter
+++ b/xCAT-genesis-scripts/usr/bin/getadapter
@@ -18,6 +18,24 @@ transmit_adapter_info() {
fi
}
+append_missing_pci_adapters() {
+ local adapter_pattern=$1
+ local adapter_file=$2
+ local model_separator=$3
+ local pci
+ local tmp
+
+ for pci in $(lspci | awk -v adapter_pattern="$adapter_pattern" '$0 ~ adapter_pattern {print $1}'); do
+ if ! grep -q "$pci" "$adapter_file" 2>/dev/null; then
+ tmp="$(lspci | grep "$pci")"
+ echo "
+$pci
+${tmp##*"$model_separator"}
+" >> "$adapter_file"
+ fi
+ done
+}
+
rm -f "$SCANNICLOG" >/dev/null 2>&1
if [ -f "$ADAPTERFILE" ]; then
@@ -66,35 +84,10 @@ for n in /sys/class/net/*; do
fi
done
-for pci in $(lspci |awk '/Ethernet/ {print $1}'); do
- if ! grep -q "$pci" "$ADAPTERFILE" 2>/dev/null; then
- tmp="$(lspci |grep "$pci")"
- echo "
-$pci
-${tmp##*:}
-" >> "$ADAPTERFILE"
- fi
-done
-
-for pci in $(lspci |awk '/Network/ {print $1}'); do
- if ! grep -q "$pci" "$ADAPTERFILE" 2>/dev/null; then
- tmp="$(lspci |grep "$pci")"
- echo "
-$pci
-${tmp##*: }
-" >> "$ADAPTERFILE"
- fi
-done
-
-for pci in $(lspci |awk '/Mellanox/ {print $1}'); do
- if ! grep -q "$pci" "$ADAPTERFILE" 2>/dev/null; then
- tmp="$(lspci |grep "$pci")"
- echo "
-$pci
-${tmp##*: }
-" >> "$ADAPTERFILE"
- fi
-done
+# Keep the legacy Ethernet model spacing while sharing the scan.
+append_missing_pci_adapters "Ethernet" "$ADAPTERFILE" ":"
+append_missing_pci_adapters "Network" "$ADAPTERFILE" ": "
+append_missing_pci_adapters "Mellanox" "$ADAPTERFILE" ": "
echo "" >> "$ADAPTERFILE"