lkml.org 
[lkml]   [2004]   [Jan]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] Add noinline attribute

    do_test_wp_bit cannot be inlined, otherwise the kernel doesn't boot
    because the exception tables get reordered.

    Add a new noinline attribute to compiler.h and use it.

    This patch is needed for the next unit-at-a-time patch.

    -Andi

    diff -u linux-34/arch/i386/mm/init.c-o linux-34/arch/i386/mm/init.c
    --- linux-34/arch/i386/mm/init.c-o 2004-01-09 09:27:09.000000000 +0100
    +++ linux-34/arch/i386/mm/init.c 2004-01-13 22:19:19.000000000 +0100
    @@ -555,7 +555,7 @@
    * This function cannot be __init, since exceptions don't work in that
    * section. Put this after the callers, so that it cannot be inlined.
    */
    -static int do_test_wp_bit(void)
    +static int noinline do_test_wp_bit(void)
    {
    char tmp_reg;
    int flag;
    diff -u linux-34/include/linux/compiler.h-o linux-34/include/linux/compiler.h
    --- linux-34/include/linux/compiler.h-o 2003-11-24 04:46:36.000000000 +0100
    +++ linux-34/include/linux/compiler.h 2004-01-13 22:17:26.000000000 +0100
    @@ -76,6 +76,10 @@
    # define __attribute_pure__ /* unimplemented */
    #endif

    +#ifndef noinline
    +#define noinline
    +#endif
    +
    /* Optimization barrier */
    #ifndef barrier
    # define barrier() __memory_barrier()
    diff -u linux-34/include/linux/compiler-gcc3.h-o linux-34/include/linux/compiler-gcc3.h
    --- linux-34/include/linux/compiler-gcc3.h-o 2003-09-28 10:53:23.000000000 +0200
    +++ linux-34/include/linux/compiler-gcc3.h 2004-01-13 22:36:22.000000000 +0100
    @@ -20,3 +22,7 @@
    #endif

    #define __attribute_pure__ __attribute__((pure))
    +
    +#if __GNUC_MINOR__ >= 1
    +#define noinline __attribute__((noinline))
    +#endif
    -
    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: 2005-03-22 14:00    [W:4.474 / U:0.236 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site