[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 3/8] hvmloader: Set up highmem resouce appropriately if there is no RAM above 4G
On Fri, 21 Jun 2013, George Dunlap wrote: > hvmloader will read hvm_info->high_mem_pgend to calculate where to > start the highmem PCI region. However, if the guest does not have any > memory in the high region, this is set to zero, which will cause > hvmloader to use the "0" for the base of the highmem region, rather > than 1 << 32. > > Check to see whether hvm_info->high_mem_pgend is set; if so, do the > normal calculation; otherwise, use 1<<32. > > v4: > > - Handle case where hfm_info->high_mem_pgend is non-zero but doesn't > point into high memory, throwing a warning. > > > Signed-off-by: Geore Dunlap <george.dunlap@xxxxxxxxxxxxx> ^ ? > CC: Ian Campbell <ian.campbell@xxxxxxxxxx> > CC: Ian Jackson <ian.jackson@xxxxxxxxxx> > CC: Stefano Stabellini <stefano.stabellini@xxxxxxxxxx> > CC: Hanweidong <hanweidong@xxxxxxxxxx> > CC: Keir Fraser <keir@xxxxxxx> Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> > tools/firmware/hvmloader/pci.c | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/tools/firmware/hvmloader/pci.c b/tools/firmware/hvmloader/pci.c > index 44168e2..a3d03ed 100644 > --- a/tools/firmware/hvmloader/pci.c > +++ b/tools/firmware/hvmloader/pci.c > @@ -246,7 +246,18 @@ void pci_setup(void) > hvm_info->high_mem_pgend += nr_pages; > } > > - high_mem_resource.base = ((uint64_t)hvm_info->high_mem_pgend) << > PAGE_SHIFT; > + high_mem_resource.base = ((uint64_t)hvm_info->high_mem_pgend) << > PAGE_SHIFT; > + if ( high_mem_resource.base < 1ull << 32 ) > + { > + if ( hvm_info->high_mem_pgend != 0 ) > + printf("WARNING: hvm_info->high_mem_pgend %x" > + " does not point into high memory!", > + hvm_info->high_mem_pgend); > + high_mem_resource.base = 1ull << 32; > + } > + printf("%sRAM in high memory; setting high_mem resource base to > "PRIllx"\n", > + hvm_info->high_mem_pgend?"":"No ", > + PRIllx_arg(high_mem_resource.base)); > high_mem_resource.max = 1ull << cpu_phys_addr(); > mem_resource.base = pci_mem_start; > mem_resource.max = pci_mem_end; > -- > 1.7.9.5 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |