aboutsummaryrefslogtreecommitdiffstats
path: root/extras/scripts/pci-nic-bind-to-kernel
diff options
context:
space:
mode:
Diffstat (limited to 'extras/scripts/pci-nic-bind-to-kernel')
-rwxr-xr-xextras/scripts/pci-nic-bind-to-kernel19
1 files changed, 19 insertions, 0 deletions
diff --git a/extras/scripts/pci-nic-bind-to-kernel b/extras/scripts/pci-nic-bind-to-kernel
new file mode 100755
index 00000000..3d8559e3
--- /dev/null
+++ b/extras/scripts/pci-nic-bind-to-kernel
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+# Bind all unused PCI devices bound to uio drivers
+# back to default kernel driver
+
+if [ $USER != "root" ] ; then
+ echo "Restarting script with sudo..."
+ sudo $0 ${*}
+ exit
+fi
+
+for f in /sys/bus/pci/drivers/{igb_uio,uio_pci_generic,vfio-pci}/*; do
+ [ -e ${f}/config ] || continue
+ fuser -s ${f}/config && continue
+ echo 1 > ${f}/remove
+ removed=y
+done
+
+[ -n ${removed} ] && echo 1 > /sys/bus/pci/rescan