Lines Matching defs:mm
11 #include <linux/mm.h>
44 unsigned long *crst_table_alloc(struct mm_struct *mm)
56 void crst_table_free(struct mm_struct *mm, unsigned long *table)
63 struct mm_struct *mm = arg;
66 if (current->active_mm == mm) {
67 S390_lowcore.user_asce.val = mm->context.asce;
73 int crst_table_upgrade(struct mm_struct *mm, unsigned long end)
76 unsigned long asce_limit = mm->context.asce_limit;
85 p4d = crst_table_alloc(mm);
91 pgd = crst_table_alloc(mm);
97 spin_lock_bh(&mm->page_table_lock);
104 VM_BUG_ON(asce_limit != mm->context.asce_limit);
107 __pgd = (unsigned long *) mm->pgd;
108 p4d_populate(mm, (p4d_t *) p4d, (pud_t *) __pgd);
109 mm->pgd = (pgd_t *) p4d;
110 mm->context.asce_limit = _REGION1_SIZE;
111 mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH |
113 mm_inc_nr_puds(mm);
116 __pgd = (unsigned long *) mm->pgd;
117 pgd_populate(mm, (pgd_t *) pgd, (p4d_t *) __pgd);
118 mm->pgd = (pgd_t *) pgd;
119 mm->context.asce_limit = TASK_SIZE_MAX;
120 mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH |
124 spin_unlock_bh(&mm->page_table_lock);
126 on_each_cpu(__crst_table_upgrade, mm, 0);
131 crst_table_free(mm, p4d);
138 struct ptdesc *page_table_alloc_pgste(struct mm_struct *mm)
160 unsigned long *page_table_alloc(struct mm_struct *mm)
187 void page_table_free(struct mm_struct *mm, unsigned long *table)
215 void pte_free_defer(struct mm_struct *mm, pgtable_t pgtable)
224 WARN_ON_ONCE(mm_has_pgste(mm));