]> git.proxmox.com Git - qemu-server.git/blobdiff - PVE/QemuServer/PCI.pm
pci related code cleanups
[qemu-server.git] / PVE / QemuServer / PCI.pm
index b94a99a97f531d9da1786596e74645daff4a5d0c..863e77e1d48efbb8ddad91ed4833e71b480dee0c 100644 (file)
@@ -224,6 +224,11 @@ sub get_pci_addr_map {
     return $pci_addr_map;
 }
 
+my sub generate_mdev_uuid {
+    my ($vmid, $index) = @_;
+    return sprintf("%08d-0000-0000-0000-%012d", $index, $vmid);
+}
+
 my $get_addr_mapping_from_id = sub {
     my ($map, $id) = @_;
 
@@ -426,7 +431,7 @@ sub print_hostpci_devices {
        my $sysfspath;
        if ($d->{mdev} && scalar(@$pcidevices) == 1) {
            my $pci_id = $pcidevices->[0]->{id};
-           my $uuid = PVE::SysFSTools::generate_mdev_uuid($vmid, $i);
+           my $uuid = generate_mdev_uuid($vmid, $i);
            $sysfspath = "/sys/bus/pci/devices/$pci_id/$uuid";
        } elsif ($d->{mdev}) {
            warn "ignoring mediated device '$id' with multifunction device\n";
@@ -462,14 +467,14 @@ sub print_hostpci_devices {
 }
 
 sub prepare_pci_device {
-    my ($vmid, $pciid, $confslot, $mdev) = @_;
+    my ($vmid, $pciid, $index, $mdev) = @_;
 
     my $info = PVE::SysFSTools::pci_device_info("$pciid");
     die "IOMMU not present\n" if !PVE::SysFSTools::check_iommu_support();
     die "no pci device info for device '$pciid'\n" if !$info;
 
     if ($mdev) {
-       my $uuid = PVE::SysFSTools::generate_mdev_uuid($vmid, $confslot);
+       my $uuid = generate_mdev_uuid($vmid, $index);
        PVE::SysFSTools::pci_create_mdev_device($pciid, $uuid, $mdev);
     } else {
        die "can't unbind/bind PCI group to VFIO '$pciid'\n"
@@ -477,8 +482,6 @@ sub prepare_pci_device {
        die "can't reset PCI device '$pciid'\n"
            if $info->{has_fl_reset} && !PVE::SysFSTools::pci_dev_reset($info);
     }
-
-    return;
 }
 
 1;