v5 -> v6: - Suggested by Naoya, declare 'hw_memory_failure' with initial value explicitly, also add __read_mostly. Thanks to Naoya&David! Leave 'Cc stable' or not to Andrew to decide. v4 -> v5: - Add mf_flags 'MF_SW_SIMULATED' to distinguish SW/HW memory failure, and use a global variable to record HW memory failure, once HW memory failure happens, disable unpoison. v3 -> v4: - Add debug entry "hwpoisoned-pages" to show the number of hwpoisoned pages. - Disable unpoison when a read HW memory failure occurs. v2 -> v3: - David pointed out that virt_to_kpte() is broken(no pmd_large() test on a PMD), so drop this API in this patch, walk kmap instead. v1 -> v2: - this change gets protected by mf_mutex - use -EOPNOTSUPP instead of -EPERM v1: - check KPTE to avoid to unpoison hardware corrupted page zhenwei pi (1): mm/memory-failure: disable unpoison once hw error happens Documentation/vm/hwpoison.rst | 3 ++- drivers/base/memory.c | 2 +- include/linux/mm.h | 1 + mm/hwpoison-inject.c | 2 +- mm/madvise.c | 2 +- mm/memory-failure.c | 12 ++++++++++++ 6 files changed, 18 insertions(+), 4 deletions(-) -- 2.20.1