blob: 24b4842fd0a2e4cf7510d072ad1b615501da9f7b [file] [log] [blame]
Peter Ginchevdfa9c5b2016-10-11 15:34:24 +03001#!/bin/sh -e
2
3removed=
4
5# Unbind user-mode PCI drivers
6pci_dirs=`find /sys/bus/pci/drivers -type d -name igb_uio -o -name uio_pci_generic -o -name vfio-pci`
7for d in $pci_dirs; do
8 for f in ${d}/*; do
9 [ -e "${f}/config" ] || continue
Radu Nicolau02767e92017-02-23 14:28:49 +000010 echo ${f##*/} > ${d}/unbind
Peter Ginchevdfa9c5b2016-10-11 15:34:24 +030011 basename `dirname ${f}` | xargs echo -n "Removing driver"; echo " for PCI ID" `basename ${f}`
12 removed=y
13 done
14done
15if [ -n "${removed}" ]; then
16 echo "There are changes in PCI drivers, rescaning"
17 echo 1 > /sys/bus/pci/rescan
18else
19 echo "There weren't PCI devices binded"
20fi
21