I updated the series again with the following changes based on the discussion over v4: - separated v4's 2/2 into two as done in the former version, - switched to "first found" approach in getting error virtual address, which could report wrong error address to applications but that's rare and not critical, - rebased onto v5.13-rc2. v1: https://lore.kernel.org/linux-mm/20210412224320.1747638-1-nao.horiguchi@xxxxxxxxx/T v2 (only 3/3 is posted): https://lore.kernel.org/linux-mm/20210419023658.GA1962954@u2004/ v3: https://lore.kernel.org/linux-mm/20210421005728.1994268-1-nao.horiguchi@xxxxxxxxx/T v4: https://lore.kernel.org/linux-mm/20210427062953.2080293-1-nao.horiguchi@xxxxxxxxx/T 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 to denote that the page has already been poisoned Naoya Horiguchi (1): mm,hwpoison: Send SIGBUS with error virutal 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 | 188 ++++++++++++++++++++++++++++++++++++++--- 3 files changed, 190 insertions(+), 16 deletions(-)