Hi, I updated the series based on previous feedbacks/discussions. Changelog v2 -> v3: - 1/3 aligned returning code with "goto out" approach, - 3/3 added one Tested-by tag, - 3/3 fixed comment on kill_accessing_process(). Changelog v1 -> v2: - 3/3 fixed on initializing local variables and calculation logic of error virtual address, v1: https://lore.kernel.org/linux-mm/20210412224320.1747638-1-nao.horiguchi@xxxxxxxxx/ v2 (only 3/3 is posted): https://lore.kernel.org/linux-mm/20210419023658.GA1962954@u2004/ Thanks, Naoya Horiguchi --- quote from cover letter of v1 --- I wrote this patchset to materialize what I think is the current allowable solution mentioned by the previous discussion [1]. I simply borrowed Tony's mutex patch and Aili's return code patch, then I queued another one to find error virtual address in the best effort manner. I know that this is not a perfect solution, but should work for some typical case. [1]: https://lore.kernel.org/linux-mm/20210331192540.2141052f@alex-virtual-machine/ --- Summary: Aili Yao (1): mm,hwpoison: return -EHWPOISON when page already Naoya Horiguchi (1): mm,hwpoison: add kill_accessing_process() to find error virtual address Tony Luck (1): mm/memory-failure: Use a mutex to avoid memory_failure() races arch/x86/kernel/cpu/mce/core.c | 13 ++- include/linux/swapops.h | 5 ++ mm/memory-failure.c | 181 +++++++++++++++++++++++++++++++++++++---- 3 files changed, 183 insertions(+), 16 deletions(-)