scripts/xen-dom0-pci-hide.sh

40 lines
1.1 KiB
Bash

#!/bin/sh -e
DEVICES="0000:00:0b.0 0000:00:0b.1 0000:01:06.0"
# check for xen pci backend
[ -d /sys/bus/pci/drivers/pciback ] || exit
for dev in $DEVICES; do
echo "Hiding pci-device [$dev] from dom0"
if [ -d /sys/bus/pci/devices/$dev/driver ]; then
driver=$(basename `readlink /sys/bus/pci/devices/$dev/driver`)
if [ "x$driver" = "xpciback" ]; then
echo " already hidden"
continue;
fi
echo -n " already bound to a driver ($driver), trying to unbind:"
echo -n $dev > /sys/bus/pci/devices/$dev/driver/unbind
count=5
while [ -d /sys/bus/pci/devices/$dev/driver ]; do
echo -n "."
echo -n $dev > /sys/bus/pci/devices/$dev/driver/unbind
sleep 1
count=$[$count -1]
[ "$count" = "0" ] && break;
done
if [ "$count" = "0" ]; then
echo " failed"
continue;
fi
fi
echo " ok"
echo -n $dev > /sys/bus/pci/drivers/pciback/new_slot
echo -n $dev > /sys/bus/pci/drivers/pciback/bind
done