mm/debug-pagealloc.c: use plain __ratelimit() instead of printk_ratelimit()
printk_ratelimit() should not be used, because it shares ratelimiting state with all other unrelated printk_ratelimit() callsites. Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
16fb951237
commit
77311139f3
|
@ -2,6 +2,7 @@
|
|||
#include <linux/mm.h>
|
||||
#include <linux/page-debug-flags.h>
|
||||
#include <linux/poison.h>
|
||||
#include <linux/ratelimit.h>
|
||||
|
||||
static inline void set_page_poison(struct page *page)
|
||||
{
|
||||
|
@ -59,6 +60,7 @@ static bool single_bit_flip(unsigned char a, unsigned char b)
|
|||
|
||||
static void check_poison_mem(unsigned char *mem, size_t bytes)
|
||||
{
|
||||
static DEFINE_RATELIMIT_STATE(ratelimit, 5 * HZ, 10);
|
||||
unsigned char *start;
|
||||
unsigned char *end;
|
||||
|
||||
|
@ -74,7 +76,7 @@ static void check_poison_mem(unsigned char *mem, size_t bytes)
|
|||
break;
|
||||
}
|
||||
|
||||
if (!printk_ratelimit())
|
||||
if (!__ratelimit(&ratelimit))
|
||||
return;
|
||||
else if (start == end && single_bit_flip(*start, PAGE_POISON))
|
||||
printk(KERN_ERR "pagealloc: single bit error\n");
|
||||
|
|
Loading…
Reference in a new issue