[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] xen: arm: use same variables as userspace in dom0 builder place_modules()
commit 00dea7acf444891f789aad213c871095422fe9d0 Author: Ian Campbell <ian.campbell@xxxxxxxxxx> AuthorDate: Wed Apr 9 12:51:15 2014 +0100 Commit: Ian Campbell <ian.campbell@xxxxxxxxxx> CommitDate: Thu Apr 10 12:14:35 2014 +0100 xen: arm: use same variables as userspace in dom0 builder place_modules() The placement algorithm should be effectively the same and using different variable names makes my head hurt when I try to compare. Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> Acked-by: Julien Grall <julien.grall@xxxxxxxxxx> --- xen/arch/arm/kernel.c | 34 +++++++++++++++++----------------- 1 files changed, 17 insertions(+), 17 deletions(-) diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c index ae86772..bc625a4 100644 --- a/xen/arch/arm/kernel.c +++ b/xen/arch/arm/kernel.c @@ -65,25 +65,25 @@ void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len) } static void place_modules(struct kernel_info *info, - paddr_t kernel_start, - paddr_t kernel_end) + paddr_t kernbase, paddr_t kernend) { /* Align DTB and initrd size to 2Mb. Linux only requires 4 byte alignment */ const paddr_t initrd_len = ROUNDUP(early_info.modules.module[MOD_INITRD].size, MB(2)); const paddr_t dtb_len = ROUNDUP(fdt_totalsize(info->fdt), MB(2)); - const paddr_t total = initrd_len + dtb_len; + const paddr_t modsize = initrd_len + dtb_len; /* Convenient */ - const paddr_t mem_start = info->mem.bank[0].start; - const paddr_t mem_size = info->mem.bank[0].size; - const paddr_t mem_end = mem_start + mem_size; - const paddr_t kernel_size = kernel_end - kernel_start; + const paddr_t rambase = info->mem.bank[0].start; + const paddr_t ramsize = info->mem.bank[0].size; + const paddr_t ramend = rambase + ramsize; + const paddr_t kernsize = kernend - kernbase; + const paddr_t ram128mb = rambase + MB(128); - paddr_t addr; + paddr_t modbase; - if ( total + kernel_size > mem_size ) - panic("Not enough memory in the first bank for the dtb+initrd"); + if ( modsize + kernsize > ramsize ) + panic("Not enough memory in the first bank for the kernel+dtb+initrd"); /* * DTB must be loaded such that it does not conflict with the @@ -100,19 +100,19 @@ static void place_modules(struct kernel_info *info, * just after the kernel, if there is room, otherwise just before. */ - if ( kernel_end < MIN(mem_start + MB(128), mem_end - total) ) - addr = MIN(mem_start + MB(128), mem_end - total); - else if ( mem_end - ROUNDUP(kernel_end, MB(2)) >= total ) - addr = ROUNDUP(kernel_end, MB(2)); - else if ( kernel_start - mem_start >= total ) - addr = kernel_start - total; + if ( kernend < MIN(ram128mb, ramend - modsize) ) + modbase = MIN(ram128mb, ramend - modsize); + else if ( ramend - ROUNDUP(kernend, MB(2)) >= modsize ) + modbase = ROUNDUP(kernend, MB(2)); + else if ( kernbase - rambase >= modsize ) + modbase = kernbase - modsize; else { panic("Unable to find suitable location for dtb+initrd"); return; } - info->dtb_paddr = addr; + info->dtb_paddr = modbase; info->initrd_paddr = info->dtb_paddr + dtb_len; } -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |