mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
xend: passthrough: do not check non-page-aligned MMIO BAR if not strict-check
When the option pci-passthrough-strict-check of /etc/xen/xend-config.sxp is set to 'no', we don't check the non-page-aligned MMIO BAR. This could be useful in some cases, e.g., when there is only 1 device in the range of the page and we try to assign the device to pv guest. Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
This commit is contained in:
1 parent
4cf3febf20
commit
6edd9aaf78
2 files changed
+6
-5
No files matched your search
@@ -702,8 +702,9 @@ class XendDomainInfo:
|
||||
raise VmError(("pci: PCI Backend and pci-stub don't own device %s")\
|
||||
%pci_device.name)
|
||||
|
||||
strict_check = xoptions.get_pci_dev_assign_strict_check()
|
||||
# Check non-page-aligned MMIO BAR.
|
||||
if pci_device.has_non_page_aligned_bar and arch.type != "ia64":
|
||||
if pci_device.has_non_page_aligned_bar and strict_check:
|
||||
raise VmError("pci: %s: non-page-aligned MMIO BAR found." % \
|
||||
pci_device.name)
|
||||
|
||||
@@ -711,7 +712,7 @@ class XendDomainInfo:
|
||||
if not self.info.is_hvm():
|
||||
return
|
||||
|
||||
if not xoptions.get_pci_dev_assign_strict_check():
|
||||
if not strict_check:
|
||||
return
|
||||
|
||||
# Check if there is intermediate PCIe switch bewteen the device and
|
||||
|
||||
@@ -289,9 +289,6 @@ class PciController(DevController):
|
||||
raise VmError(("pci: PCI Backend and pci-stub don't own "+ \
|
||||
"device %s\n") %(dev.name))
|
||||
|
||||
if dev.has_non_page_aligned_bar and arch.type != "ia64":
|
||||
raise VmError("pci: %s: non-page-aligned MMIO BAR found." % dev.name)
|
||||
|
||||
self.CheckSiblingDevices(fe_domid, dev)
|
||||
|
||||
# We don't do FLR when we create domain and hotplug device into guest,
|
||||
@@ -368,6 +365,9 @@ class PciController(DevController):
|
||||
raise VmError("pci: failed to locate device and "+
|
||||
"parse its resources - "+str(e))
|
||||
|
||||
if dev.has_non_page_aligned_bar and strict_check:
|
||||
raise VmError("pci: %s: non-page-aligned MMIO BAR found." % dev.name)
|
||||
|
||||
# Check if there is intermediate PCIe switch bewteen the device and
|
||||
# Root Complex.
|
||||
if self.vm.info.is_hvm() and dev.is_behind_switch_lacking_acs() \
|
||||
|
||||