#!/bin/sh -e | |
removed= | |
# Unbind user-mode PCI drivers | |
pci_dirs=`find /sys/bus/pci/drivers -type d -name igb_uio -o -name uio_pci_generic -o -name vfio-pci` | |
for d in $pci_dirs; do | |
for f in ${d}/*; do | |
[ -e "${f}/config" ] || continue | |
echo ${f##*/} > ${d}/unbind | |
basename `dirname ${f}` | xargs echo -n "Removing driver"; echo " for PCI ID" `basename ${f}` | |
removed=y | |
done | |
done | |
if [ -n "${removed}" ]; then | |
echo "There are changes in PCI drivers, rescaning" | |
echo 1 > /sys/bus/pci/rescan | |
else | |
echo "There weren't PCI devices binded" | |
fi | |