[PATCH] Support HIGHMEM pages in vmap_pages_range_noflush()

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

 



If the pages being mapped are in HIGHMEM, page_address() returns NULL.
This probably wasn't noticed before because there aren't currently
any architectures with HAVE_ARCH_HUGE_VMALLOC and HIGHMEM, but it's
simpler to call page_to_phys() and futureproofs us against such
configurations existing.

Fixes: 121e6f3258fe ("mm/vmalloc: hugepage vmalloc mappings")
Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx>

diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index dd6cdb201195..bea9b0c37295 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -590,7 +590,7 @@ int vmap_pages_range_noflush(unsigned long addr, unsigned long end,
 		int err;
 
 		err = vmap_range_noflush(addr, addr + (1UL << page_shift),
-					__pa(page_address(pages[i])), prot,
+					page_to_phys(pages[i]), prot,
 					page_shift);
 		if (err)
 			return err;




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux