From: Wen Jiang <[email protected]>

Extract the vmalloc mapping shift selection from
__vmalloc_node_range_noprof() into vm_shift(), preparing for reuse by the
vmap batching path.

No functional change.

Suggested-by: Dev Jain <[email protected]>
Signed-off-by: Wen Jiang <[email protected]>
Tested-by: Xueyuan Chen <[email protected]>
Tested-by: Leo Yan <[email protected]>
---
 mm/vmalloc.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index cf1daf931a6f6..ed868afd8194d 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -3532,6 +3532,14 @@ void vunmap(const void *addr)
 }
 EXPORT_SYMBOL(vunmap);
 
+static inline unsigned int vm_shift(pgprot_t prot, unsigned long size)
+{
+       if (arch_vmap_pmd_supported(prot) && size >= PMD_SIZE)
+               return PMD_SHIFT;
+
+       return arch_vmap_pte_supported_shift(size);
+}
+
 /**
  * vmap - map an array of pages into virtually contiguous space
  * @pages: array of page pointers
@@ -4039,11 +4047,7 @@ void *__vmalloc_node_range_noprof(unsigned long size, 
unsigned long align,
                 * supporting them.
                 */
 
-               if (arch_vmap_pmd_supported(prot) && size >= PMD_SIZE)
-                       shift = PMD_SHIFT;
-               else
-                       shift = arch_vmap_pte_supported_shift(size);
-
+               shift = vm_shift(prot, size);
                align = max(original_align, 1UL << shift);
        }
 
-- 
2.34.1


Reply via email to