mm: page_alloc: unreserve highatomic page blocks before oom
[linux-2.6-microblaze.git] / mm / ksm.c
index 7efcc68..5d60d53 100644 (file)
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -468,7 +468,7 @@ static int break_ksm_pmd_entry(pmd_t *pmd, unsigned long addr, unsigned long nex
                        page = pfn_swap_entry_to_page(entry);
        }
        /* return 1 if the page is an normal ksm page or KSM-placed zero page */
-       ret = (page && PageKsm(page)) || is_ksm_zero_pte(*pte);
+       ret = (page && PageKsm(page)) || is_ksm_zero_pte(ptent);
        pte_unmap_unlock(pte, ptl);
        return ret;
 }
@@ -1099,9 +1099,9 @@ error:
 static u32 calc_checksum(struct page *page)
 {
        u32 checksum;
-       void *addr = kmap_atomic(page);
+       void *addr = kmap_local_page(page);
        checksum = xxhash(addr, PAGE_SIZE, 0);
-       kunmap_atomic(addr);
+       kunmap_local(addr);
        return checksum;
 }