Re: [patch] x86_64: fix tss limit (was Re: CAN-2005-0204 and 2.4)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Sep 24, 2005 at 12:55:41AM +0200, Jesper Juhl wrote:
> On 9/24/05, Siddha, Suresh B <[email protected]> wrote:
> >         set_tssldt_descriptor(&cpu_gdt_table[cpu][GDT_ENTRY_TSS], (unsigned long)addr,
> >                               DESC_TSS,
> > -                             sizeof(struct tss_struct) - 1);
> > +                             IO_BITMAP_OFFSET + IO_BITMAP_BYTES + 7);
> >  }
> >
> [snip]
> 
> Is it just me, or would it be nice with a symbolic name for this "7" ?
> For someone reading the code for the first time it seems to me that
> it's non-obvious why the 7 is there, and why it's 7 exactely - a
> define would make it clearer as I see it.

Andrew please apply this updated patch. Thanks.

--
Fix the x86_64 TSS limit in TSS descriptor.

Signed-off-by: Suresh Siddha <[email protected]>

--- linux-2.6.14-rc1/include/asm-x86_64/desc.h.orig	2005-09-12 20:12:09.000000000 -0700
+++ linux-2.6.14-rc1/include/asm-x86_64/desc.h	2005-09-23 15:41:28.103954880 -0700
@@ -127,9 +127,16 @@ static inline void set_tssldt_descriptor
 
 static inline void set_tss_desc(unsigned cpu, void *addr)
 { 
+	/*
+	 * 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,
-			      sizeof(struct tss_struct) - 1);
+			      IO_BITMAP_OFFSET + IO_BITMAP_BYTES + sizeof(unsigned long) - 1);
 } 
 
 static inline void set_ldt_desc(unsigned cpu, void *addr, int size)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux