]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/asm-x86_64/desc.h
Merge x86-64 update from Andi
[linux-2.6-omap-h63xx.git] / include / asm-x86_64 / desc.h
index 1a3d380f9d5df87335a16abd6923d26f6f6792f0..33764869387bc1c5ad9a707df503e5eef0c8bedf 100644 (file)
@@ -132,9 +132,16 @@ static inline void set_tssldt_descriptor(void *ptr, unsigned long tss, unsigned
 
 static inline void set_tss_desc(unsigned cpu, void *addr)
 { 
-       set_tssldt_descriptor(&cpu_gdt_table[cpu][GDT_ENTRY_TSS], (unsigned long)addr, 
-                             DESC_TSS,
-                             sizeof(struct tss_struct) - 1);
+       /*
+        * sizeof(unsigned long) coming from an extra "long" at the end
+        * of the iobitmap. See tss_struct definition in processor.h
+        *
+        * -1? seg base+limit should be pointing to the address of the
+        * last valid byte
+        */
+       set_tssldt_descriptor(&cpu_gdt_table[cpu][GDT_ENTRY_TSS],
+               (unsigned long)addr, DESC_TSS,
+               IO_BITMAP_OFFSET + IO_BITMAP_BYTES + sizeof(unsigned long) - 1);
 } 
 
 static inline void set_ldt_desc(unsigned cpu, void *addr, int size)