[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86/hvmloader: align BAR position to 4K
On 14.01.2020 19:13, Roger Pau Monne wrote: > When placing BARs with sizes smaller than 4K multiple BARs can end > up mapped to the same guest physical address, and thus won't work > correctly. BARs of the same device can very well share a page in the common case, can't they? (There may be reasons, like things getting too complicated, for not actually honoring this, but then the description should say so imo.) > Align all BARs placement to 4K in hvmloader to prevent such > overlapping. > > Note that the guest can still move the BARs around and create this > collisions, and that BARs not filling up a physical page might leak > access to other MMIO regions placed in the same host physical page. Throughout the description and in the title I think you would better say "memory BAR". > --- a/tools/firmware/hvmloader/pci.c > +++ b/tools/firmware/hvmloader/pci.c > @@ -489,6 +489,10 @@ void pci_setup(void) > > resource->base = base; > > + if ( (bar_data & PCI_BASE_ADDRESS_SPACE) == > + PCI_BASE_ADDRESS_SPACE_MEMORY ) > + resource->base = ROUNDUP(resource->base, PAGE_SIZE); Doesn't this need adjustments to the calculation of the MMIO hole size higher up in the function? Also, as per a few lines up, perhaps if ( resource == &mem_resource) ? Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |