lkml.org 
[lkml]   [2010]   [May]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] Fix uninitialized spinlock of printk_ratelimited()
    Date
    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>
    ---

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

    diff -puN include/linux/kernel.h~printk_ratelimited-fix include/linux/kernel.h
    --- linux-2.6/include/linux/kernel.h~printk_ratelimited-fix 2010-05-17 03:37:33.000000000 +0900
    +++ linux-2.6-hirofumi/include/linux/kernel.h 2010-05-17 03:37:33.000000000 +0900
    @@ -420,14 +420,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: */
    _
    --
    OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>

    \
     
     \ /
      Last update: 2010-05-17 01:59    [W:0.027 / U:31.336 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site