lkml.org 
[lkml]   [2012]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[ 07/34] printk_ratelimited(): fix uninitialized spinlock
    2.6.32-longterm review patch.  If anyone has any objections, please let me know.

    ------------------

    From: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>

    commit d8521fcc5e0ad3e79bbc4231bb20a6cdc2b50164 upstream.

    ratelimit_state initialization of printk_ratelimited() seems broken. This
    fixes it by using DEFINE_RATELIMIT_STATE() to initialize spinlock
    properly.

    Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
    Cc: Joe Perches <joe@perches.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Sven-Haegar Koch <haegar@sdinet.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    include/linux/kernel.h | 15 +++++++--------
    1 file changed, 7 insertions(+), 8 deletions(-)

    --- a/include/linux/kernel.h
    +++ b/include/linux/kernel.h
    @@ -411,14 +411,13 @@ static inline char *pack_hex_byte(char *
    * no local ratelimit_state used in the !PRINTK case
    */
    #ifdef CONFIG_PRINTK
    -#define printk_ratelimited(fmt, ...) ({ \
    - static struct ratelimit_state _rs = { \
    - .interval = DEFAULT_RATELIMIT_INTERVAL, \
    - .burst = DEFAULT_RATELIMIT_BURST, \
    - }; \
    - \
    - if (__ratelimit(&_rs)) \
    - printk(fmt, ##__VA_ARGS__); \
    +#define printk_ratelimited(fmt, ...) ({ \
    + static DEFINE_RATELIMIT_STATE(_rs, \
    + DEFAULT_RATELIMIT_INTERVAL, \
    + DEFAULT_RATELIMIT_BURST); \
    + \
    + if (__ratelimit(&_rs)) \
    + printk(fmt, ##__VA_ARGS__); \
    })
    #else
    /* No effect, but we still get type checking even in the !PRINTK case: */



    \
     
     \ /
      Last update: 2012-03-01 22:55    [W:0.051 / U:3.388 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site