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

Re: [Xen-devel] [PATCH 3/3] xen/arm: fix mask calculation in init_pdx



Hi Jan,

On 5/6/19 10:06 AM, Jan Beulich wrote:
On 03.05.19 at 22:50, <sstabellini@xxxxxxxxxx> wrote:
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -481,10 +481,15 @@ static paddr_t __init next_module(paddr_t s, paddr_t *end)
  static void __init init_pdx(void)
  {
      paddr_t bank_start, bank_size, bank_end;
-
-    u64 mask = pdx_init_mask(bootinfo.mem.bank[0].start);
+    u64 mask;
      int bank;
+ /*
+     * We always map the first 1<<MAX_ORDER of RAM, hence, they are left

"... pages of RAM." ?

+     * uncompressed.
+     */
+    mask = pdx_init_mask(1ULL << (MAX_ORDER + PAGE_SHIFT));

PAGE_SIZE << MAX_ORDER?

Hmmm, I am not entirely convince this will give the correct value because PAGE_SIZE is defined as (_AC(1, L) << PAGE_SHIFT.


I wonder whether pdx_init_mask() itself wouldn't better apply this
(lower) cap

Do you mean always returning (PAGE_SIZE << MAX_ORDER) or capping the init mask?

Note that the later will not produce the same behavior as this patch.

Cheers,

--
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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