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:
Keir Fraser committed 2009-10-16 08:30:13 +01:00
1 parent 4cf3febf20
commit 6edd9aaf78
2 files changed
+6 -5

No files matched your search

+3 -2
View File
@@ -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
+3 -3
View File
@@ -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() \
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.