| str_array_entry "cgroup_device_acl"
| str_entry "save_image_format"
| str_entry "hugetlbfs_mount"
+ | bool_entry "relaxed_acs_check"
(* Each enty in the config is one of the following three ... *)
let entry = vnc_entry
# This currently requires ebtables to be installed.
#
# mac_filter = 1
+
+# By default, PCI devices below non-ACS switch are not allowed to be assigned
+# to guests. By setting relaxed_acs_check to 1 such devices will be allowed to
+# be assigned to guests.
+#
+# relaxed_acs_check = 1
}
}
+ p = virConfGetValue (conf, "relaxed_acs_check");
+ CHECK_TYPE ("relaxed_acs_check", VIR_CONF_LONG);
+ if (p) driver->relaxedACS = p->l;
+
virConfFree (conf);
return 0;
}
unsigned int macFilter : 1;
ebtablesContext *ebtables;
+ unsigned int relaxedACS : 1;
+
virCapsPtr caps;
/* An array of callbacks */
for (i = 0; i < pciDeviceListCount(pcidevs); i++) {
pciDevice *dev = pciDeviceListGet(pcidevs, i);
+ if (!pciDeviceIsAssignable(conn, dev, !driver->relaxedACS))
+ goto cleanup;
+
if (pciDeviceGetManaged(dev) &&
pciDettachDevice(conn, dev) < 0)
goto cleanup;
if (!pci)
return -1;
- if ((hostdev->managed && pciDettachDevice(conn, pci) < 0) ||
+ if (!pciDeviceIsAssignable(conn, pci, !driver->relaxedACS) ||
+ (hostdev->managed && pciDettachDevice(conn, pci) < 0) ||
pciResetDevice(conn, pci, driver->activePciHostdevs) < 0) {
pciFreeDevice(conn, pci);
return -1;
save_image_format = \"gzip\"
hugetlbfs_mount = \"/dev/hugepages\"
+
+relaxed_acs_check = 1
"
test Libvirtd_qemu.lns get conf =
{ "#empty" }
{ "save_image_format" = "gzip" }
{ "#empty" }
-{ "hugetlbfs_mount" = "/dev/hugepages" }
\ No newline at end of file
+{ "hugetlbfs_mount" = "/dev/hugepages" }
+{ "#empty" }
+{ "relaxed_acs_check" = "1" }