From: Stewart Hildebrand <[email protected]> Skip mapping the BAR if it is not in a valid range.
Signed-off-by: Stewart Hildebrand <[email protected]> --- xen/drivers/vpci/header.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c index 1d243eeaf9..dbabdcbed2 100644 --- a/xen/drivers/vpci/header.c +++ b/xen/drivers/vpci/header.c @@ -345,6 +345,15 @@ static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only) bar->enabled == !!(cmd & PCI_COMMAND_MEMORY) ) continue; +#ifdef CONFIG_ARM + if ( !is_hardware_domain(pdev->domain) ) + { + if ( (start_guest < PFN_DOWN(GUEST_VPCI_MEM_ADDR)) || + (end_guest >= PFN_DOWN(GUEST_VPCI_MEM_ADDR + GUEST_VPCI_MEM_SIZE)) ) + continue; + } +#endif + if ( !pci_check_bar(pdev, _mfn(start), _mfn(end)) ) { printk(XENLOG_G_WARNING -- 2.41.0
