[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] xen/arm: mm: fix nr_second calculation in setup_frametable_mappings

Hi Peng,

On 12/05/16 07:36, Peng Fan wrote:
To ARM64, "frametable_size >> SECOND_SHIFT" means the number
of second level entries, not the number of second level pages.

is the correct way to calculate the second level pages needed
for frametable mapping.

Good catch!

Signed-off-by: Peng Fan <van.freenix@xxxxxxxxx>
Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>
Cc: Julien Grall <julien.grall@xxxxxxx>
  xen/arch/arm/mm.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index 0a4f845..7c7f8e9 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -767,7 +767,7 @@ void __init setup_frametable_mappings(paddr_t ps, paddr_t 
      base_mfn = alloc_boot_pages(frametable_size >> PAGE_SHIFT, 32<<(20-12));

  #ifdef CONFIG_ARM_64
-    nr_second = frametable_size >> SECOND_SHIFT;
+    nr_second = DIV_ROUND_UP(frametable_size >> SECOND_SHIFT, LPAE_ENTRIES);

I think the following would be clearer:

ROUNDUP(frametable_size, FIRST_SIZE) >> FIRST_SHIFT;

This would also benefit a comment to explain that second level of page table are populating.

      second_base = alloc_boot_pages(nr_second, 1);
      second = mfn_to_virt(second_base);
      for ( i = 0; i < nr_second; i++ )


Julien Grall

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.