printk_ratelimited(): fix uninitialized spinlock

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>
This commit is contained in:
OGAWA Hirofumi
2010-05-24 14:33:11 -07:00
committed by Linus Torvalds
parent fa1f68db6c
commit d8521fcc5e

View File

@@ -425,10 +425,9 @@ static inline char *pack_hex_byte(char *buf, u8 byte)
*/ */
#ifdef CONFIG_PRINTK #ifdef CONFIG_PRINTK
#define printk_ratelimited(fmt, ...) ({ \ #define printk_ratelimited(fmt, ...) ({ \
static struct ratelimit_state _rs = { \ static DEFINE_RATELIMIT_STATE(_rs, \
.interval = DEFAULT_RATELIMIT_INTERVAL, \ DEFAULT_RATELIMIT_INTERVAL, \
.burst = DEFAULT_RATELIMIT_BURST, \ DEFAULT_RATELIMIT_BURST); \
}; \
\ \
if (__ratelimit(&_rs)) \ if (__ratelimit(&_rs)) \
printk(fmt, ##__VA_ARGS__); \ printk(fmt, ##__VA_ARGS__); \