提交 5ac37f87 编写于 作者: M Michael Karcher 提交者: Ingo Molnar

x86: fix ldt limit for 64 bit

Fix size of LDT entries. On x86-64, ldt_desc is a double-sized descriptor.
Signed-off-by: NMichael Karcher <kernel@mkarcher.dialup.fu-berlin.de>
Signed-off-by: NIngo Molnar <mingo@elte.hu>
上级 a361ee5c
...@@ -192,8 +192,8 @@ static inline void native_set_ldt(const void *addr, unsigned int entries) ...@@ -192,8 +192,8 @@ static inline void native_set_ldt(const void *addr, unsigned int entries)
unsigned cpu = smp_processor_id(); unsigned cpu = smp_processor_id();
ldt_desc ldt; ldt_desc ldt;
set_tssldt_descriptor(&ldt, (unsigned long)addr, set_tssldt_descriptor(&ldt, (unsigned long)addr, DESC_LDT,
DESC_LDT, entries * sizeof(ldt) - 1); entries * LDT_ENTRY_SIZE - 1);
write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_LDT, write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_LDT,
&ldt, DESC_LDT); &ldt, DESC_LDT);
asm volatile("lldt %w0"::"q" (GDT_ENTRY_LDT*8)); asm volatile("lldt %w0"::"q" (GDT_ENTRY_LDT*8));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册