48 lines · 992 B · Shell
RawDownload
# SPDX-License-Identifier: GPL-2.0-or-laterset -e source $(dirname -- "${BASH_SOURCE[0]}")/lib.sh function main() {	local device_bdf	local device_dir	local numvfs	local driver 	if [ $# = 0 ]; then		echo "usage: $0 segment:bus:device.function ..." >&2		exit 1	fi 	for device_bdf in "$@"; do		test -d /sys/bus/pci/devices/${device_bdf} 		device_dir=${DEVICES_DIR}/${device_bdf}		if [ -d "${device_dir}" ]; then			echo "${device_bdf} has already been set up, exiting."			exit 0		fi 		mkdir -p ${device_dir} 		numvfs=$(get_sriov_numvfs ${device_bdf})		if [ "${numvfs}" ]; then			set_sriov_numvfs ${device_bdf} 0			echo ${numvfs} > ${device_dir}/sriov_numvfs		fi 		driver=$(get_driver ${device_bdf})		if [ "${driver}" ]; then			unbind ${device_bdf} ${driver}			echo ${driver} > ${device_dir}/driver		fi 		set_driver_override ${device_bdf} vfio-pci		touch ${device_dir}/driver_override 		bind ${device_bdf} vfio-pci		touch ${device_dir}/vfio-pci	done} main "$@"