| /linux/arch/x86/kernel/ |
| H A D | ldt.c | 44 struct ldt_struct *ldt; in load_mm_ldt() local 47 ldt = READ_ONCE(mm->context.ldt); in load_mm_ldt() 63 if (unlikely(ldt)) { in load_mm_ldt() 65 if (WARN_ON_ONCE((unsigned long)ldt->slot > 1)) { in load_mm_ldt() 81 set_ldt(ldt_slot_va(ldt->slot), ldt->nr_entries); in load_mm_ldt() 83 set_ldt(ldt->entries, ldt->nr_entries); in load_mm_ldt() 109 if (unlikely((unsigned long)prev->context.ldt | in switch_ldt() 110 (unsigned long)next->context.ldt)) in switch_ldt() 193 if (mm->context.ldt) { in do_sanity_check() 243 if (boot_cpu_has(X86_FEATURE_PTI) && !mm->context.ldt) in map_ldt_struct_to_user() [all …]
|
| H A D | step.c | 39 if (unlikely(!child->mm->context.ldt || in convert_ip_to_linear() 40 seg >= child->mm->context.ldt->nr_entries)) in convert_ip_to_linear() 43 desc = &child->mm->context.ldt->entries[seg]; in convert_ip_to_linear()
|
| H A D | process_64.c | 433 struct ldt_struct *ldt; in x86_fsgsbase_read_task() local 441 ldt = task->mm->context.ldt; in x86_fsgsbase_read_task() 442 if (unlikely(!ldt || idx >= ldt->nr_entries)) in x86_fsgsbase_read_task() 445 base = get_desc_base(ldt->entries + idx); in x86_fsgsbase_read_task()
|
| H A D | doublefault_32.c | 91 .ldt = 0,
|
| H A D | umip.c | 270 if (current->mm->context.ldt) in emulate_umip_insn()
|
| H A D | Makefile | 73 obj-$(CONFIG_MODIFY_LDT_SYSCALL) += ldt.o
|
| /linux/arch/x86/include/asm/ |
| H A D | desc.h | 114 #define load_ldt(ldt) asm volatile("lldt %0"::"m" (ldt)) argument 126 static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries) in paravirt_alloc_ldt() argument 130 static inline void paravirt_free_ldt(struct desc_struct *ldt, unsigned entries) in paravirt_free_ldt() argument 135 #define store_ldt(ldt) asm("sldt %0" : "=m"(ldt)) argument 142 static inline void native_write_ldt_entry(struct desc_struct *ldt, int entry, const void *desc) in native_write_ldt_entry() argument 144 memcpy(&ldt[entry], desc, 8); in native_write_ldt_entry() 198 ldt_desc ldt; in native_set_ldt() local 200 set_tssldt_descriptor(&ldt, (unsigned long)addr, DESC_LDT, in native_set_ldt() 203 &ldt, DESC_LDT); in native_set_ldt()
|
| H A D | paravirt.h | 211 static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries) in paravirt_alloc_ldt() argument 213 PVOP_VCALL2(pv_ops, cpu.alloc_ldt, ldt, entries); in paravirt_alloc_ldt() 216 static inline void paravirt_free_ldt(struct desc_struct *ldt, unsigned entries) in paravirt_free_ldt() argument 218 PVOP_VCALL2(pv_ops, cpu.free_ldt, ldt, entries); in paravirt_free_ldt()
|
| H A D | suspend_32.h | 21 u16 ldt; member
|
| H A D | suspend_64.h | 50 u16 ldt; member
|
| H A D | paravirt_types.h | 52 void (*write_ldt_entry)(struct desc_struct *ldt, int entrynum, 58 void (*alloc_ldt)(struct desc_struct *ldt, unsigned entries); 59 void (*free_ldt)(struct desc_struct *ldt, unsigned entries);
|
| H A D | mmu.h | 46 struct ldt_struct *ldt; member
|
| H A D | mmu_context.h | 57 mm->context.ldt = NULL; in init_new_context_ldt()
|
| H A D | processor.h | 302 unsigned short ldt, __ldth; member
|
| H A D | kvm_host.h | 2340 u16 ldt; in kvm_read_ldt() local 2341 asm("sldt %0" : "=g"(ldt)); in kvm_read_ldt() 2342 return ldt; in kvm_read_ldt()
|
| /linux/tools/testing/selftests/x86/ |
| H A D | ldt_gdt.c | 65 static void check_invalid_segment(uint16_t index, int ldt) in check_invalid_segment() argument 68 uint32_t selector = (index << 3) | (ldt << 2) | 3; in check_invalid_segment() 85 (ldt ? "LDT" : "GDT"), index); in check_invalid_segment() 89 (ldt ? "LDT" : "GDT"), index); in check_invalid_segment() 93 static void check_valid_segment(uint16_t index, int ldt, in check_valid_segment() argument 98 uint32_t selector = (index << 3) | (ldt << 2) | 3; in check_valid_segment() 115 (ldt ? "LDT" : "GDT"), index); in check_valid_segment() 129 (ldt ? "LDT" : "GDT"), index, ar, expected_ar); in check_valid_segment() 133 (ldt ? "LDT" : "GDT"), index, limit, expected_limit); in check_valid_segment() 137 (ldt ? "LDT" : "GDT"), index, ar, limit); in check_valid_segment() [all …]
|
| /linux/arch/x86/math-emu/ |
| H A D | fpu_system.h | 31 if (current->mm->context.ldt && seg < current->mm->context.ldt->nr_entries) in FPU_get_ldt_descriptor() 32 ret = current->mm->context.ldt->entries[seg]; in FPU_get_ldt_descriptor()
|
| /linux/arch/x86/hyperv/ |
| H A D | hv_vtl.c | 122 struct ldttss_desc *ldt; in hv_vtl_bringup_vcpu() local 137 ldt = (struct ldttss_desc *)(gdt + GDT_ENTRY_LDT); in hv_vtl_bringup_vcpu() 188 input->vp_context.ldtr.base = hv_vtl_system_desc_base(ldt); in hv_vtl_bringup_vcpu() 189 input->vp_context.ldtr.limit = hv_vtl_system_desc_limit(ldt); in hv_vtl_bringup_vcpu()
|
| /linux/arch/x86/lib/ |
| H A D | insn-eval.c | 629 struct ldt_struct *ldt; in get_desc() local 642 ldt = current->mm->context.ldt; in get_desc() 643 if (ldt && sel < ldt->nr_entries) { in get_desc() 644 *out = ldt->entries[sel]; in get_desc()
|
| /linux/arch/x86/kvm/ |
| H A D | tss.h | 57 u16 ldt; member
|
| /linux/arch/x86/xen/ |
| H A D | enlighten_pv.c | 504 static void xen_alloc_ldt(struct desc_struct *ldt, unsigned entries) in xen_alloc_ldt() argument 521 set_aliased_prot(ldt + i, PAGE_KERNEL_RO); in xen_alloc_ldt() 524 static void xen_free_ldt(struct desc_struct *ldt, unsigned entries) in xen_free_ldt() argument 530 set_aliased_prot(ldt + i, PAGE_KERNEL); in xen_free_ldt()
|
| /linux/arch/x86/include/uapi/asm/ |
| H A D | kvm.h | 153 struct kvm_segment tr, ldt; member 164 struct kvm_segment tr, ldt; member
|
| /linux/tools/arch/x86/include/uapi/asm/ |
| H A D | kvm.h | 153 struct kvm_segment tr, ldt; member 164 struct kvm_segment tr, ldt; member
|
| /linux/arch/x86/events/ |
| H A D | core.c | 2891 struct ldt_struct *ldt; in get_segment_base() local 2901 ldt = smp_load_acquire(¤t->mm->context.ldt); in get_segment_base() 2902 if (!ldt || idx >= ldt->nr_entries) in get_segment_base() 2905 desc = &ldt->entries[idx]; in get_segment_base()
|
| /linux/arch/alpha/kernel/ |
| H A D | entry.S | 698 ldt $f0, FR(0) # don't let "__save_fpu" change fp state.
|