]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/x86/mm/pageattr.c
Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[karo-tx-linux.git] / arch / x86 / mm / pageattr.c
index e2621a8e8213c69cb170097d3a41d2a10f32f1fd..a3137a4feed15ed0d58189411e4e1ae2d9236e8a 100644 (file)
@@ -668,9 +668,12 @@ __split_large_page(struct cpa_data *cpa, pte_t *kpte, unsigned long address,
        for (i = 0; i < PTRS_PER_PTE; i++, pfn += pfninc)
                set_pte(&pbase[i], pfn_pte(pfn, canon_pgprot(ref_prot)));
 
-       if (pfn_range_is_mapped(PFN_DOWN(__pa(address)),
-                               PFN_DOWN(__pa(address)) + 1))
-               split_page_count(level);
+       if (virt_addr_valid(address)) {
+               unsigned long pfn = PFN_DOWN(__pa(address));
+
+               if (pfn_range_is_mapped(pfn, pfn + 1))
+                       split_page_count(level);
+       }
 
        /*
         * Install the new, split up pagetable.