Thread (41 messages) flat view 41 messages, 6 authors, 2021-05-28

Re: [PATCH 3/4] ARM: change vmalloc_min to vmalloc_start

From: Xu, Yanfei <hidden>
Date: 2021-05-19 05:05:02
Also in: lkml


On 5/18/21 8:15 PM, Russell King (Oracle) wrote:
quoted hunk ↗ jump to hunk
[Please note: This e-mail is from an EXTERNAL e-mail address]

Change the current vmalloc_min, which is supposed to be the lowest
address of vmalloc space including the VMALLOC_OFFSET, to vmalloc_start
which does not include VMALLOC_OFFSET.

Signed-off-by: Russell King (Oracle) <redacted>
---
  arch/arm/mm/mmu.c | 10 +++++-----
  1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index d932c46a02e0..457203b41ceb 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -1123,8 +1123,7 @@ void __init debug_ll_io_init(void)
  }
  #endif

-static unsigned long __initdata vmalloc_min =
-       VMALLOC_END - (240 << 20) - VMALLOC_OFFSET;
+static unsigned long __initdata vmalloc_start = VMALLOC_END - (240 << 20);

  /*
   * vmalloc=size forces the vmalloc area to be exactly 'size'
@@ -1142,14 +1141,14 @@ static int __init early_vmalloc(char *arg)
                         vmalloc_reserve >> 20);
         }

-       vmalloc_max = VMALLOC_END - (PAGE_OFFSET + SZ_32M);
+       vmalloc_max = VMALLOC_END - (PAGE_OFFSET + SZ_32M + VMALLOC_OFFSET);
         if (vmalloc_reserve > vmalloc_max) {
                 vmalloc_reserve = vmalloc_max;
                 pr_warn("vmalloc area is too big, limiting to %luMB\n",
                         vmalloc_reserve >> 20);
         }

-       vmalloc_min = VMALLOC_END - vmalloc_reserve;
+       vmalloc_start = VMALLOC_END - vmalloc_reserve;
         return 0;
  }
  early_param("vmalloc", early_vmalloc);
@@ -1169,7 +1168,8 @@ void __init adjust_lowmem_bounds(void)
          * and may itself be outside the valid range for which phys_addr_t
          * and therefore __pa() is defined.
          */
-       vmalloc_limit = (u64)vmalloc_min - PAGE_OFFSET + PHYS_OFFSET;
+       vmalloc_limit = (u64)vmalloc_start -
+                       (PAGE_OFFSET + PHYS_OFFSET + VMALLOC_OFFSET);
Here is bug, it should be

        vmalloc_limit = (u64)vmalloc_start -
                        (PAGE_OFFSET + VMALLOC_OFFSET) + PHYS_OFFSET;
         /*
          * The first usable region must be PMD aligned. Mark its start
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help