| 1 | |
| 2 |
|
| 3 | source $(dirname -- "${BASH_SOURCE[0]}")/lib.sh
|
| 4 |
|
| 5 | function cleanup_devices() {
|
| 6 | local device_bdf
|
| 7 | local device_dir
|
| 8 |
|
| 9 | for device_bdf in "$@"; do
|
| 10 | device_dir=${DEVICES_DIR}/${device_bdf}
|
| 11 |
|
| 12 | if [ -f ${device_dir}/vfio-pci ]; then
|
| 13 | unbind ${device_bdf} vfio-pci
|
| 14 | fi
|
| 15 |
|
| 16 | if [ -f ${device_dir}/driver_override ]; then
|
| 17 | clear_driver_override ${device_bdf}
|
| 18 | fi
|
| 19 |
|
| 20 | if [ -f ${device_dir}/driver ]; then
|
| 21 | bind ${device_bdf} $(cat ${device_dir}/driver)
|
| 22 | fi
|
| 23 |
|
| 24 | if [ -f ${device_dir}/sriov_numvfs ]; then
|
| 25 | set_sriov_numvfs ${device_bdf} $(cat ${device_dir}/sriov_numvfs)
|
| 26 | fi
|
| 27 |
|
| 28 | rm -rf ${device_dir}
|
| 29 | done
|
| 30 | }
|
| 31 |
|
| 32 | function main() {
|
| 33 | if [ $# = 0 ]; then
|
| 34 | cleanup_devices $(ls ${DEVICES_DIR})
|
| 35 | rmdir ${DEVICES_DIR}
|
| 36 | else
|
| 37 | cleanup_devices "$@"
|
| 38 | fi
|
| 39 | }
|
| 40 |
|
| 41 | main "$@"
|