aboutsummaryrefslogtreecommitdiffstats
path: root/mm/memory-failure.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/memory-failure.c')
-rw-r--r--mm/memory-failure.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/mm/memory-failure.c b/mm/memory-failure.c
index 117ef1598469..2d5f1223bf4d 100644
--- a/mm/memory-failure.c
+++ b/mm/memory-failure.c
@@ -49,10 +49,12 @@ int sysctl_memory_failure_recovery __read_mostly = 1;
49 49
50atomic_long_t mce_bad_pages __read_mostly = ATOMIC_LONG_INIT(0); 50atomic_long_t mce_bad_pages __read_mostly = ATOMIC_LONG_INIT(0);
51 51
52u32 hwpoison_filter_enable = 0;
52u32 hwpoison_filter_dev_major = ~0U; 53u32 hwpoison_filter_dev_major = ~0U;
53u32 hwpoison_filter_dev_minor = ~0U; 54u32 hwpoison_filter_dev_minor = ~0U;
54u64 hwpoison_filter_flags_mask; 55u64 hwpoison_filter_flags_mask;
55u64 hwpoison_filter_flags_value; 56u64 hwpoison_filter_flags_value;
57EXPORT_SYMBOL_GPL(hwpoison_filter_enable);
56EXPORT_SYMBOL_GPL(hwpoison_filter_dev_major); 58EXPORT_SYMBOL_GPL(hwpoison_filter_dev_major);
57EXPORT_SYMBOL_GPL(hwpoison_filter_dev_minor); 59EXPORT_SYMBOL_GPL(hwpoison_filter_dev_minor);
58EXPORT_SYMBOL_GPL(hwpoison_filter_flags_mask); 60EXPORT_SYMBOL_GPL(hwpoison_filter_flags_mask);
@@ -145,6 +147,9 @@ static int hwpoison_filter_task(struct page *p) { return 0; }
145 147
146int hwpoison_filter(struct page *p) 148int hwpoison_filter(struct page *p)
147{ 149{
150 if (!hwpoison_filter_enable)
151 return 0;
152
148 if (hwpoison_filter_dev(p)) 153 if (hwpoison_filter_dev(p))
149 return -EINVAL; 154 return -EINVAL;
150 155