--- v1
+++ v9
@@ -1,80 +1,52 @@
This removes some direct accesses to struct page, working towards
splitting out struct ptdesc from struct page.
+Acked-by: Mike Rapoport (IBM) <rppt@kernel.org>
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com>
---
- arch/x86/xen/mmu_pv.c | 2 +-
- include/linux/mm.h | 14 +++++++-------
- 2 files changed, 8 insertions(+), 8 deletions(-)
+ include/linux/mm.h | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
-diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
-index fdc91deece7e..a1c9f8dcbb5a 100644
---- a/arch/x86/xen/mmu_pv.c
-+++ b/arch/x86/xen/mmu_pv.c
-@@ -651,7 +651,7 @@ static spinlock_t *xen_pte_lock(struct page *page, struct mm_struct *mm)
- spinlock_t *ptl = NULL;
-
- #if USE_SPLIT_PTE_PTLOCKS
-- ptl = ptlock_ptr(page);
-+ ptl = ptlock_ptr(page_ptdesc(page));
- spin_lock_nest_lock(ptl, &mm->page_table_lock);
- #endif
-
diff --git a/include/linux/mm.h b/include/linux/mm.h
-index 17dc6e37ea03..ed8dd0464841 100644
+index bc82a64e5f01..040982fe9063 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
-@@ -2789,9 +2789,9 @@ void __init ptlock_cache_init(void);
- bool ptlock_alloc(struct ptdesc *ptdesc);
- extern void ptlock_free(struct page *page);
-
--static inline spinlock_t *ptlock_ptr(struct page *page)
-+static inline spinlock_t *ptlock_ptr(struct ptdesc *ptdesc)
- {
-- return page->ptl;
-+ return ptdesc->ptl;
- }
- #else /* ALLOC_SPLIT_PTLOCKS */
- static inline void ptlock_cache_init(void)
-@@ -2807,15 +2807,15 @@ static inline void ptlock_free(struct page *page)
- {
+@@ -2993,12 +2993,12 @@ static inline spinlock_t *pmd_lockptr(struct mm_struct *mm, pmd_t *pmd)
+ return ptlock_ptr(pmd_ptdesc(pmd));
}
--static inline spinlock_t *ptlock_ptr(struct page *page)
-+static inline spinlock_t *ptlock_ptr(struct ptdesc *ptdesc)
+-static inline bool pmd_ptlock_init(struct page *page)
++static inline bool pmd_ptlock_init(struct ptdesc *ptdesc)
{
-- return &page->ptl;
-+ return &ptdesc->ptl;
- }
- #endif /* ALLOC_SPLIT_PTLOCKS */
-
- static inline spinlock_t *pte_lockptr(struct mm_struct *mm, pmd_t *pmd)
- {
-- return ptlock_ptr(pmd_page(*pmd));
-+ return ptlock_ptr(page_ptdesc(pmd_page(*pmd)));
+ #ifdef CONFIG_TRANSPARENT_HUGEPAGE
+- page->pmd_huge_pte = NULL;
++ ptdesc->pmd_huge_pte = NULL;
+ #endif
+- return ptlock_init(page);
++ return ptlock_init(ptdesc_page(ptdesc));
}
- static inline bool ptlock_init(struct page *page)
-@@ -2830,7 +2830,7 @@ static inline bool ptlock_init(struct page *page)
- VM_BUG_ON_PAGE(*(unsigned long *)&page->ptl, page);
- if (!ptlock_alloc(page_ptdesc(page)))
- return false;
-- spin_lock_init(ptlock_ptr(page));
-+ spin_lock_init(ptlock_ptr(page_ptdesc(page)));
- return true;
+ static inline void pmd_ptlock_free(struct page *page)
+@@ -3018,7 +3018,7 @@ static inline spinlock_t *pmd_lockptr(struct mm_struct *mm, pmd_t *pmd)
+ return &mm->page_table_lock;
}
-@@ -2900,7 +2900,7 @@ static inline struct ptdesc *pmd_ptdesc(pmd_t *pmd)
+-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) {}
- static inline spinlock_t *pmd_lockptr(struct mm_struct *mm, pmd_t *pmd)
+ #define pmd_huge_pte(mm, pmd) ((mm)->pmd_huge_pte)
+@@ -3034,7 +3034,7 @@ static inline spinlock_t *pmd_lock(struct mm_struct *mm, pmd_t *pmd)
+
+ static inline bool pgtable_pmd_page_ctor(struct page *page)
{
-- return ptlock_ptr(ptdesc_page(pmd_ptdesc(pmd)));
-+ return ptlock_ptr(pmd_ptdesc(pmd));
- }
-
- static inline bool pmd_ptlock_init(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.39.2
+2.40.1
_______________________________________________