|
@@ -1378,6 +1378,19 @@ static inline void pgtable_page_dtor(struct page *page)
|
|
|
((unlikely(pmd_none(*(pmd))) && __pte_alloc_kernel(pmd, address))? \
|
|
|
NULL: pte_offset_kernel(pmd, address))
|
|
|
|
|
|
+static inline spinlock_t *pmd_lockptr(struct mm_struct *mm, pmd_t *pmd)
|
|
|
+{
|
|
|
+ return &mm->page_table_lock;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+static inline spinlock_t *pmd_lock(struct mm_struct *mm, pmd_t *pmd)
|
|
|
+{
|
|
|
+ spinlock_t *ptl = pmd_lockptr(mm, pmd);
|
|
|
+ spin_lock(ptl);
|
|
|
+ return ptl;
|
|
|
+}
|
|
|
+
|
|
|
extern void free_area_init(unsigned long * zones_size);
|
|
|
extern void free_area_init_node(int nid, unsigned long * zones_size,
|
|
|
unsigned long zone_start_pfn, unsigned long *zholes_size);
|