mm: ptep_get() conversion
[sfrench/cifs-2.6.git] / mm / highmem.c
index db251e77f98f87253a377571334b06aee8caceeb..e19269093a93cf7e03a76d3dd27fb3110d44f89f 100644 (file)
@@ -161,7 +161,7 @@ struct page *__kmap_to_page(void *vaddr)
        /* kmap() mappings */
        if (WARN_ON_ONCE(addr >= PKMAP_ADDR(0) &&
                         addr < PKMAP_ADDR(LAST_PKMAP)))
-               return pte_page(pkmap_page_table[PKMAP_NR(addr)]);
+               return pte_page(ptep_get(&pkmap_page_table[PKMAP_NR(addr)]));
 
        /* kmap_local_page() mappings */
        if (WARN_ON_ONCE(base >= __fix_to_virt(FIX_KMAP_END) &&
@@ -191,6 +191,7 @@ static void flush_all_zero_pkmaps(void)
 
        for (i = 0; i < LAST_PKMAP; i++) {
                struct page *page;
+               pte_t ptent;
 
                /*
                 * zero means we don't have anything to do,
@@ -203,7 +204,8 @@ static void flush_all_zero_pkmaps(void)
                pkmap_count[i] = 0;
 
                /* sanity check */
-               BUG_ON(pte_none(pkmap_page_table[i]));
+               ptent = ptep_get(&pkmap_page_table[i]);
+               BUG_ON(pte_none(ptent));
 
                /*
                 * Don't need an atomic fetch-and-clear op here;
@@ -212,7 +214,7 @@ static void flush_all_zero_pkmaps(void)
                 * getting the kmap_lock (which is held here).
                 * So no dangers, even with speculative execution.
                 */
-               page = pte_page(pkmap_page_table[i]);
+               page = pte_page(ptent);
                pte_clear(&init_mm, PKMAP_ADDR(i), &pkmap_page_table[i]);
 
                set_page_address(page, NULL);
@@ -511,7 +513,7 @@ static inline bool kmap_high_unmap_local(unsigned long vaddr)
 {
 #ifdef ARCH_NEEDS_KMAP_HIGH_GET
        if (vaddr >= PKMAP_ADDR(0) && vaddr < PKMAP_ADDR(LAST_PKMAP)) {
-               kunmap_high(pte_page(pkmap_page_table[PKMAP_NR(vaddr)]));
+               kunmap_high(pte_page(ptep_get(&pkmap_page_table[PKMAP_NR(vaddr)])));
                return true;
        }
 #endif
@@ -548,7 +550,7 @@ void *__kmap_local_pfn_prot(unsigned long pfn, pgprot_t prot)
        idx = arch_kmap_local_map_idx(kmap_local_idx_push(), pfn);
        vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
        kmap_pte = kmap_get_pte(vaddr, idx);
-       BUG_ON(!pte_none(*kmap_pte));
+       BUG_ON(!pte_none(ptep_get(kmap_pte)));
        pteval = pfn_pte(pfn, prot);
        arch_kmap_local_set_pte(&init_mm, vaddr, kmap_pte, pteval);
        arch_kmap_local_post_map(vaddr, pteval);