|
@@ -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");
|