Lines Matching refs:ldt
109 if (mm->context.ldt) { in do_sanity_check()
159 if (static_cpu_has(X86_FEATURE_PTI) && !mm->context.ldt) in map_ldt_struct_to_user()
184 if (static_cpu_has(X86_FEATURE_PTI) && !mm->context.ldt) in map_ldt_struct_to_user()
212 map_ldt_struct(struct mm_struct *mm, struct ldt_struct *ldt, int slot) in map_ldt_struct() argument
227 WARN_ON(ldt->slot != -1); in map_ldt_struct()
239 is_vmalloc = is_vmalloc_addr(ldt->entries); in map_ldt_struct()
241 for (i = 0; i * PAGE_SIZE < ldt->nr_entries * LDT_ENTRY_SIZE; i++) { in map_ldt_struct()
243 const void *src = (char *)ldt->entries + offset; in map_ldt_struct()
278 ldt->slot = slot; in map_ldt_struct()
285 map_ldt_struct(struct mm_struct *mm, struct ldt_struct *ldt, int slot) in map_ldt_struct() argument
308 static void finalize_ldt_struct(struct ldt_struct *ldt) in finalize_ldt_struct() argument
310 paravirt_alloc_ldt(ldt->entries, ldt->nr_entries); in finalize_ldt_struct()
313 static void install_ldt(struct mm_struct *mm, struct ldt_struct *ldt) in install_ldt() argument
318 smp_store_release(&mm->context.ldt, ldt); in install_ldt()
326 static void free_ldt_struct(struct ldt_struct *ldt) in free_ldt_struct() argument
328 if (likely(!ldt)) in free_ldt_struct()
331 paravirt_free_ldt(ldt->entries, ldt->nr_entries); in free_ldt_struct()
332 if (ldt->nr_entries * LDT_ENTRY_SIZE > PAGE_SIZE) in free_ldt_struct()
333 vfree_atomic(ldt->entries); in free_ldt_struct()
335 free_page((unsigned long)ldt->entries); in free_ldt_struct()
336 kfree(ldt); in free_ldt_struct()
352 if (!old_mm->context.ldt) in ldt_dup_context()
355 new_ldt = alloc_ldt_struct(old_mm->context.ldt->nr_entries); in ldt_dup_context()
361 memcpy(new_ldt->entries, old_mm->context.ldt->entries, in ldt_dup_context()
371 mm->context.ldt = new_ldt; in ldt_dup_context()
385 free_ldt_struct(mm->context.ldt); in destroy_context_ldt()
386 mm->context.ldt = NULL; in destroy_context_ldt()
402 if (!mm->context.ldt) { in read_ldt()
410 entries_size = mm->context.ldt->nr_entries * LDT_ENTRY_SIZE; in read_ldt()
414 if (copy_to_user(ptr, mm->context.ldt->entries, entries_size)) { in read_ldt()
454 struct desc_struct ldt; in write_ldt() local
477 memset(&ldt, 0, sizeof(ldt)); in write_ldt()
484 fill_ldt(&ldt, &ldt_info); in write_ldt()
486 ldt.avl = 0; in write_ldt()
492 old_ldt = mm->context.ldt; in write_ldt()
504 new_ldt->entries[ldt_info.entry_number] = ldt; in write_ldt()