| # SPDX-License-Identifier: GPL-2.0-or-later | |
| source $(dirname -- "${BASH_SOURCE[0]}")/lib.sh | |
| function cleanup_devices() { | |
| local device_bdf | |
| local device_dir | |
| for device_bdf in "$@"; do | |
| device_dir=${DEVICES_DIR}/${device_bdf} | |
| if [ -f ${device_dir}/vfio-pci ]; then | |
| unbind ${device_bdf} vfio-pci | |
| fi | |
| if [ -f ${device_dir}/driver_override ]; then | |
| clear_driver_override ${device_bdf} | |
| fi | |
| if [ -f ${device_dir}/driver ]; then | |
| bind ${device_bdf} $(cat ${device_dir}/driver) | |
| fi | |
| if [ -f ${device_dir}/sriov_numvfs ]; then | |
| set_sriov_numvfs ${device_bdf} $(cat ${device_dir}/sriov_numvfs) | |
| fi | |
| rm -rf ${device_dir} | |
| done | |
| } | |
| function main() { | |
| if [ $# = 0 ]; then | |
| cleanup_devices $(ls ${DEVICES_DIR}) | |
| rmdir ${DEVICES_DIR} | |
| else | |
| cleanup_devices "$@" | |
| fi | |
| } | |
| main "$@" |