on vm start, we reserve all pciids that we use, and remove the reservation again in vm_stop_cleanup
this way, when a vm starts with a pci device that is already configured for a different running vm, will not be started and the user gets the error that the device is already in use Signed-off-by: Dominik Csapak <d.csa...@proxmox.com> --- PVE/QemuServer.pm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 076ce59..1e8cd53 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -5365,6 +5365,13 @@ sub vm_start_nolock { my $d = parse_hostpci($conf->{"hostpci$i"}); next if !$d; my $pcidevices = $d->{pciid}; + + # reserve all pciids + foreach my $pcidevice (@$pcidevices) { + my $pciid = $pcidevice->{id}; + PVE::QemuServer::PCI::reserve_pci_usage($pciid, $vmid); + } + foreach my $pcidevice (@$pcidevices) { my $pciid = $pcidevice->{id}; @@ -5676,6 +5683,7 @@ sub vm_stop_cleanup { foreach my $pci (@{$d->{pciid}}) { my $pciid = $pci->{id}; PVE::SysFSTools::pci_cleanup_mdev_device($pciid, $uuid); + PVE::QemuServer::PCI::remove_pci_reservation($pciid); } } -- 2.30.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel