--- v4
+++ v1
@@ -3,49 +3,63 @@
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com>
---
- include/linux/mm.h | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
+ include/linux/mm.h | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/include/linux/mm.h b/include/linux/mm.h
-index bb934d51390f..daecf1db6cf1 100644
+index 7eb562909b2c..d2485a110936 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
-@@ -2942,12 +2942,12 @@ static inline spinlock_t *pmd_lockptr(struct mm_struct *mm, pmd_t *pmd)
- return ptlock_ptr(pmd_ptdesc(pmd));
+@@ -2818,7 +2818,7 @@ static inline spinlock_t *pte_lockptr(struct mm_struct *mm, pmd_t *pmd)
+ return ptlock_ptr(page_ptdesc(pmd_page(*pmd)));
}
--static inline bool pmd_ptlock_init(struct page *page)
-+static inline bool pmd_ptlock_init(struct ptdesc *ptdesc)
+-static inline bool ptlock_init(struct page *page)
++static inline bool ptlock_init(struct ptdesc *ptdesc)
{
+ /*
+ * prep_new_page() initialize page->private (and therefore page->ptl)
+@@ -2827,10 +2827,10 @@ static inline bool ptlock_init(struct page *page)
+ * It can happen if arch try to use slab for page table allocation:
+ * slab code uses page->slab_cache, which share storage with page->ptl.
+ */
+- VM_BUG_ON_PAGE(*(unsigned long *)&page->ptl, page);
+- if (!ptlock_alloc(page_ptdesc(page)))
++ VM_BUG_ON_PAGE(*(unsigned long *)&ptdesc->ptl, ptdesc_page(ptdesc));
++ if (!ptlock_alloc(ptdesc))
+ return false;
+- spin_lock_init(ptlock_ptr(page_ptdesc(page)));
++ spin_lock_init(ptlock_ptr(ptdesc));
+ return true;
+ }
+
+@@ -2843,13 +2843,13 @@ static inline spinlock_t *pte_lockptr(struct mm_struct *mm, pmd_t *pmd)
+ return &mm->page_table_lock;
+ }
+ static inline void ptlock_cache_init(void) {}
+-static inline bool ptlock_init(struct page *page) { return true; }
++static inline bool ptlock_init(struct ptdesc *ptdesc) { return true; }
+ static inline void ptlock_free(struct page *page) {}
+ #endif /* USE_SPLIT_PTE_PTLOCKS */
+
+ static inline bool pgtable_pte_page_ctor(struct page *page)
+ {
+- if (!ptlock_init(page))
++ if (!ptlock_init(page_ptdesc(page)))
+ return false;
+ __SetPageTable(page);
+ inc_lruvec_page_state(page, NR_PAGETABLE);
+@@ -2908,7 +2908,7 @@ static inline bool pmd_ptlock_init(struct ptdesc *ptdesc)
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
-- page->pmd_huge_pte = NULL;
-+ ptdesc->pmd_huge_pte = NULL;
+ ptdesc->pmd_huge_pte = NULL;
#endif
-- return ptlock_init(page);
-+ return ptlock_init(ptdesc_page(ptdesc));
+- return ptlock_init(ptdesc_page(ptdesc));
++ return ptlock_init(ptdesc);
}
static inline void pmd_ptlock_free(struct page *page)
-@@ -2967,7 +2967,7 @@ static inline spinlock_t *pmd_lockptr(struct mm_struct *mm, pmd_t *pmd)
- return &mm->page_table_lock;
- }
-
--static inline bool pmd_ptlock_init(struct page *page) { return true; }
-+static inline bool pmd_ptlock_init(struct ptdesc *ptdesc) { return true; }
- static inline void pmd_ptlock_free(struct page *page) {}
-
- #define pmd_huge_pte(mm, pmd) ((mm)->pmd_huge_pte)
-@@ -2983,7 +2983,7 @@ static inline spinlock_t *pmd_lock(struct mm_struct *mm, pmd_t *pmd)
-
- static inline bool pgtable_pmd_page_ctor(struct page *page)
- {
-- if (!pmd_ptlock_init(page))
-+ if (!pmd_ptlock_init(page_ptdesc(page)))
- return false;
- __SetPageTable(page);
- inc_lruvec_page_state(page, NR_PAGETABLE);
--
-2.40.1
+2.39.2
_______________________________________________