59 lines
1.6 KiB
Diff
59 lines
1.6 KiB
Diff
This breaks page poisoning on some architectures. The commit is not
|
|
very useful by itself, so revert it until a real fix is upstream.
|
|
|
|
From 0cbb20875a8607653f02d799fd4b75a34d1b6636 Mon Sep 17 00:00:00 2001
|
|
From: q66 <daniel@octaforge.org>
|
|
Date: Mon, 25 Jan 2021 02:59:47 +0100
|
|
Subject: [PATCH] Revert "mm/page_poison.c: replace bool variable with static
|
|
key"
|
|
|
|
This reverts commit 11c9c7edae06da789abfdeefe5123162a3f1c7dc.
|
|
---
|
|
mm/page_poison.c | 20 +++++---------------
|
|
1 file changed, 5 insertions(+), 15 deletions(-)
|
|
|
|
diff --git a/mm/page_poison.c b/mm/page_poison.c
|
|
index ae0482c..34b9181 100644
|
|
--- a/mm/page_poison.c
|
|
+++ b/mm/page_poison.c
|
|
@@ -8,23 +8,13 @@
|
|
#include <linux/ratelimit.h>
|
|
#include <linux/kasan.h>
|
|
|
|
-static DEFINE_STATIC_KEY_FALSE_RO(want_page_poisoning);
|
|
+static bool want_page_poisoning __read_mostly;
|
|
|
|
static int __init early_page_poison_param(char *buf)
|
|
{
|
|
- int ret;
|
|
- bool tmp;
|
|
-
|
|
- ret = strtobool(buf, &tmp);
|
|
- if (ret)
|
|
- return ret;
|
|
-
|
|
- if (tmp)
|
|
- static_branch_enable(&want_page_poisoning);
|
|
- else
|
|
- static_branch_disable(&want_page_poisoning);
|
|
-
|
|
- return 0;
|
|
+ if (!buf)
|
|
+ return -EINVAL;
|
|
+ return strtobool(buf, &want_page_poisoning);
|
|
}
|
|
early_param("page_poison", early_page_poison_param);
|
|
|
|
@@ -41,7 +31,7 @@ bool page_poisoning_enabled(void)
|
|
* Page poisoning is debug page alloc for some arches. If
|
|
* either of those options are enabled, enable poisoning.
|
|
*/
|
|
- return (static_branch_unlikely(&want_page_poisoning) ||
|
|
+ return (want_page_poisoning ||
|
|
(!IS_ENABLED(CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC) &&
|
|
debug_pagealloc_enabled()));
|
|
}
|
|
--
|
|
2.30.0
|
|
|