Attach/detach pci devices from netvm upon resume/suspend
This commit is contained in:
parent
a4585f1369
commit
28fbb48845
48
dom0/pm-utils/01qubes-swap-pci-devs
Executable file
48
dom0/pm-utils/01qubes-swap-pci-devs
Executable file
@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. "${PM_FUNCTIONS}"
|
||||||
|
|
||||||
|
get_domain_pci_devs()
|
||||||
|
{
|
||||||
|
VM=$1
|
||||||
|
TMPFILE=$(mktemp -p /var/run/qubes/)
|
||||||
|
xm pci-list $VM > $TMPFILE
|
||||||
|
if grep -i -q vslt $TMPFILE ; then
|
||||||
|
slt=valid_identifier
|
||||||
|
else
|
||||||
|
slt=""
|
||||||
|
fi
|
||||||
|
cat $TMPFILE | grep -v domain | sed 's/0x//g'| \
|
||||||
|
while read $slt a b c d; do echo $a:$b:$c.$d ; done > /var/run/qubes/$VM.pcidevs
|
||||||
|
rm -f $TMPFILE
|
||||||
|
}
|
||||||
|
|
||||||
|
detach_pcis()
|
||||||
|
{
|
||||||
|
NETVM=$(qvm-get-default-netvm)
|
||||||
|
if [ "X"$NETVM = "X""dom0" -o "X"$NETVM = "X" -o "X"$NETVM = "X""none"] ; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
get_domain_pci_devs $NETVM
|
||||||
|
for dev in $(cat /var/run/qubes/$NETVM.pcidevs) ; do
|
||||||
|
xm pci-detach $NETVM $dev
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
attach_pcis()
|
||||||
|
{
|
||||||
|
NETVM=$(qvm-get-default-netvm)
|
||||||
|
if [ "X"$NETVM = "X""dom0" -o "X"$NETVM = "X" -o "X"$NETVM = "X""none"] ; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
for dev in $(cat /var/run/qubes/$NETVM.pcidevs) ; do
|
||||||
|
xm pci-attach $NETVM $dev
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
resume) attach_pcis ;;
|
||||||
|
suspend) detach_pcis ;;
|
||||||
|
*) exit 0 ;;
|
||||||
|
esac
|
@ -115,6 +115,7 @@ cp ../common/iptables $RPM_BUILD_ROOT/etc/sysconfig
|
|||||||
|
|
||||||
mkdir -p $RPM_BUILD_ROOT/usr/lib64/pm-utils/sleep.d
|
mkdir -p $RPM_BUILD_ROOT/usr/lib64/pm-utils/sleep.d
|
||||||
cp pm-utils/01qubes-sync-vms-clock $RPM_BUILD_ROOT/usr/lib64/pm-utils/sleep.d/
|
cp pm-utils/01qubes-sync-vms-clock $RPM_BUILD_ROOT/usr/lib64/pm-utils/sleep.d/
|
||||||
|
cp pm-utils/01qubes-swap-pci-devs $RPM_BUILD_ROOT/usr/lib64/pm-utils/sleep.d/
|
||||||
cp pm-utils/02qubes-pause-vms $RPM_BUILD_ROOT/usr/lib64/pm-utils/sleep.d/
|
cp pm-utils/02qubes-pause-vms $RPM_BUILD_ROOT/usr/lib64/pm-utils/sleep.d/
|
||||||
|
|
||||||
%triggerin -- xen-runtime
|
%triggerin -- xen-runtime
|
||||||
@ -234,6 +235,7 @@ fi
|
|||||||
/etc/NetworkManager/dispatcher.d/qubes_nmhook
|
/etc/NetworkManager/dispatcher.d/qubes_nmhook
|
||||||
/etc/sysconfig/iptables
|
/etc/sysconfig/iptables
|
||||||
/usr/lib64/pm-utils/sleep.d/01qubes-sync-vms-clock
|
/usr/lib64/pm-utils/sleep.d/01qubes-sync-vms-clock
|
||||||
|
/usr/lib64/pm-utils/sleep.d/01qubes-swap-pci-devs
|
||||||
/usr/lib64/pm-utils/sleep.d/02qubes-pause-vms
|
/usr/lib64/pm-utils/sleep.d/02qubes-pause-vms
|
||||||
/usr/bin/xenstore-watch
|
/usr/bin/xenstore-watch
|
||||||
/usr/bin/qvm-create-default-dvm
|
/usr/bin/qvm-create-default-dvm
|
||||||
|
Loading…
Reference in New Issue
Block a user