diff options
author | Siddha, Suresh B <suresh.b.siddha@intel.com> | 2005-11-13 19:06:21 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-13 21:14:09 -0500 |
commit | 47936357c0d14809c3c9547e532511f6625654b2 (patch) | |
tree | a0b05cdc13fa9192ed9d167b5597eafab998ffaf /include | |
parent | 4ba529a8a39e15688b6a3d31b11930d1f8a1edad (diff) |
[PATCH] x86_64: fix tss limit
Fix the x86_64 TSS limit in TSS descriptor.
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Acked-by: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-x86_64/desc.h | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/include/asm-x86_64/desc.h b/include/asm-x86_64/desc.h index 68ac3c62fe3d..b837820c9073 100644 --- a/include/asm-x86_64/desc.h +++ b/include/asm-x86_64/desc.h | |||
@@ -129,9 +129,16 @@ static inline void set_tssldt_descriptor(void *ptr, unsigned long tss, unsigned | |||
129 | 129 | ||
130 | static inline void set_tss_desc(unsigned cpu, void *addr) | 130 | static inline void set_tss_desc(unsigned cpu, void *addr) |
131 | { | 131 | { |
132 | set_tssldt_descriptor(&cpu_gdt_table[cpu][GDT_ENTRY_TSS], (unsigned long)addr, | 132 | /* |
133 | DESC_TSS, | 133 | * sizeof(unsigned long) coming from an extra "long" at the end |
134 | sizeof(struct tss_struct) - 1); | 134 | * of the iobitmap. See tss_struct definition in processor.h |
135 | * | ||
136 | * -1? seg base+limit should be pointing to the address of the | ||
137 | * last valid byte | ||
138 | */ | ||
139 | set_tssldt_descriptor(&cpu_gdt_table[cpu][GDT_ENTRY_TSS], | ||
140 | (unsigned long)addr, DESC_TSS, | ||
141 | IO_BITMAP_OFFSET + IO_BITMAP_BYTES + sizeof(unsigned long) - 1); | ||
135 | } | 142 | } |
136 | 143 | ||
137 | static inline void set_ldt_desc(unsigned cpu, void *addr, int size) | 144 | static inline void set_ldt_desc(unsigned cpu, void *addr, int size) |