lkml.org 
[lkml]   [2007]   [Apr]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] [25/48] x86_64: Introduce load_TLS to the "for" loop.
    Date

    From: Rusty Russell <rusty@rustcorp.com.au>

    GCC (4.1 at least) unrolls it anyway, but I can't believe this code
    was ever justifiable. (I've also submitted a patch which cleans up
    i386, which is even uglier).

    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: Andi Kleen <ak@suse.de>
    Cc: Andi Kleen <ak@suse.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    ---

    include/asm-x86_64/desc.h | 11 ++++-------
    1 file changed, 4 insertions(+), 7 deletions(-)

    Index: linux/include/asm-x86_64/desc.h
    ===================================================================
    --- linux.orig/include/asm-x86_64/desc.h
    +++ linux/include/asm-x86_64/desc.h
    @@ -135,16 +135,13 @@ static inline void set_ldt_desc(unsigned
    (info)->useable == 0 && \
    (info)->lm == 0)

    -#if TLS_SIZE != 24
    -# error update this code.
    -#endif
    -
    static inline void load_TLS(struct thread_struct *t, unsigned int cpu)
    {
    + unsigned int i;
    u64 *gdt = (u64 *)(cpu_gdt(cpu) + GDT_ENTRY_TLS_MIN);
    - gdt[0] = t->tls_array[0];
    - gdt[1] = t->tls_array[1];
    - gdt[2] = t->tls_array[2];
    +
    + for (i = 0; i < GDT_ENTRY_TLS_ENTRIES; i++)
    + gdt[i] = t->tls_array[i];
    }

    /*
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2007-04-29 13:01    [W:3.029 / U:0.328 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site