| #!/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 1 > ${f}/remove |
| 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 |
| |