diff options
author | Andi Kleen <andi@firstfloor.org> | 2009-12-21 13:56:42 -0500 |
---|---|---|
committer | Andi Kleen <ak@linux.intel.com> | 2009-12-21 13:56:42 -0500 |
commit | 27df5068e24f2f88de98e95eb6e8dbc9800bf80e (patch) | |
tree | a93ae4838cc5a1b6c866005bd79777895d0ba7de | |
parent | dd59f6c76b265ed2ff18b497d6105a9511b1feb1 (diff) |
HWPOISON: Add PROC_FS dependency to hwpoison injector v2
The injector filter requires stable_page_flags() which is supplied
by procfs. So make it dependent on that.
Also add ifdefs around the filter code in memory-failure.c so that
when the filter is disabled due to missing dependencies the whole
code still builds.
Reported-by: Ingo Molnar
Signed-off-by: Andi Kleen <ak@linux.intel.com>
-rw-r--r-- | mm/Kconfig | 2 | ||||
-rw-r--r-- | mm/memory-failure.c | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/mm/Kconfig b/mm/Kconfig index ee9f3e0f2b69..17b8947aa7da 100644 --- a/mm/Kconfig +++ b/mm/Kconfig | |||
@@ -253,7 +253,7 @@ config MEMORY_FAILURE | |||
253 | 253 | ||
254 | config HWPOISON_INJECT | 254 | config HWPOISON_INJECT |
255 | tristate "HWPoison pages injector" | 255 | tristate "HWPoison pages injector" |
256 | depends on MEMORY_FAILURE && DEBUG_KERNEL | 256 | depends on MEMORY_FAILURE && DEBUG_KERNEL && PROC_FS |
257 | select PROC_PAGE_MONITOR | 257 | select PROC_PAGE_MONITOR |
258 | 258 | ||
259 | config NOMMU_INITIAL_TRIM_EXCESS | 259 | config NOMMU_INITIAL_TRIM_EXCESS |
diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 6a0466ed5bfd..17299fd4577c 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c | |||
@@ -52,6 +52,8 @@ int sysctl_memory_failure_recovery __read_mostly = 1; | |||
52 | 52 | ||
53 | atomic_long_t mce_bad_pages __read_mostly = ATOMIC_LONG_INIT(0); | 53 | atomic_long_t mce_bad_pages __read_mostly = ATOMIC_LONG_INIT(0); |
54 | 54 | ||
55 | #if defined(CONFIG_HWPOISON_INJECT) || defined(CONFIG_HWPOISON_INJECT_MODULE) | ||
56 | |||
55 | u32 hwpoison_filter_enable = 0; | 57 | u32 hwpoison_filter_enable = 0; |
56 | u32 hwpoison_filter_dev_major = ~0U; | 58 | u32 hwpoison_filter_dev_major = ~0U; |
57 | u32 hwpoison_filter_dev_minor = ~0U; | 59 | u32 hwpoison_filter_dev_minor = ~0U; |
@@ -164,6 +166,13 @@ int hwpoison_filter(struct page *p) | |||
164 | 166 | ||
165 | return 0; | 167 | return 0; |
166 | } | 168 | } |
169 | #else | ||
170 | int hwpoison_filter(struct page *p) | ||
171 | { | ||
172 | return 0; | ||
173 | } | ||
174 | #endif | ||
175 | |||
167 | EXPORT_SYMBOL_GPL(hwpoison_filter); | 176 | EXPORT_SYMBOL_GPL(hwpoison_filter); |
168 | 177 | ||
169 | /* | 178 | /* |