On Tue, May 07, 2024 at 05:28:22PM +0800, Miaohe Lin wrote:
From: Oscar Salvador osalvador@suse.de
Tony reported that the Machine check recovery was broken in v6.9-rc1, as he was hitting a VM_BUG_ON when injecting uncorrectable memory errors to DRAM.
After some more digging and debugging on his side, he realized that this went back to v6.1, with the introduction of 'commit 0d206b5d2e0d ("mm/swap: add swp_offset_pfn() to fetch PFN from swap entry")'. That commit, among other things, introduced swp_offset_pfn(), replacing hwpoison_entry_to_pfn() in its favour.
The patch also introduced a VM_BUG_ON() check for is_pfn_swap_entry(), but is_pfn_swap_entry() never got updated to cover hwpoison entries, which means that we would hit the VM_BUG_ON whenever we would call swp_offset_pfn() for such entries on environments with CONFIG_DEBUG_VM set. Fix this by updating the check to cover hwpoison entries as well, and update the comment while we are it.
Link: https://lkml.kernel.org/r/20240407130537.16977-1-osalvador@suse.de Fixes: 0d206b5d2e0d ("mm/swap: add swp_offset_pfn() to fetch PFN from swap entry") Signed-off-by: Oscar Salvador osalvador@suse.de Reported-by: Tony Luck tony.luck@intel.com Closes: https://lore.kernel.org/all/Zg8kLSl2yAlA3o5D@agluck-desk3/ Tested-by: Tony Luck tony.luck@intel.com Reviewed-by: Peter Xu peterx@redhat.com Reviewed-by: David Hildenbrand david@redhat.com Acked-by: Miaohe Lin linmiaohe@huawei.com Cc: stable@vger.kernel.org [6.1.x] Signed-off-by: Andrew Morton akpm@linux-foundation.org (cherry picked from commit 07a57a338adb6ec9e766d6a6790f76527f45ceb5) Signed-off-by: Miaohe Lin linmiaohe@huawei.com
include/linux/swapops.h | 105 ++++++++++++++++++++-------------------- 1 file changed, 53 insertions(+), 52 deletions(-)
Now queued up, thanks.
greg k-h