On 8/23/06, Jeremy Fitzhardinge <jeremy@xxxxxxxx> wrote:Hm. Try this:I have no such file.
--- a/arch/i386/kernel/paravirt.c
+++ b/arch/i386/kernel/paravirt.c
--- a/include/asm-i386/desc.h
+++ b/include/asm-i386/desc.h
@@ -97,7 +97,7 @@ static inline void set_ldt(const void *a
__u32 low, high;
pack_descriptor(&low, &high, (unsigned long)addr,
- entries * sizeof(struct desc_struct) - 1,
+ entries * sizeof(struct desc_struct),
DESCTYPE_LDT, 0);
write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_LDT, low, high);
There is no such code in this file.
I adopt your code for linux-2.6.18-rc4-mm2, and looks like it fix bug.
Index: linux-2.6.18-rc4-mm2/include/asm-i386/desc.h
===================================================================
--- linux-2.6.18-rc4-mm2.orig/include/asm-i386/desc.h
+++ linux-2.6.18-rc4-mm2/include/asm-i386/desc.h
@@ -114,7 +114,7 @@ static inline void set_ldt_desc(unsigned
{
__u32 a, b;
pack_descriptor(&a, &b, (unsigned long)addr,
- entries * sizeof(struct desc_struct) - 1,
+ entries * sizeof(struct desc_struct),
DESCTYPE_LDT, 0);
write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_LDT, a, b);
}