Commit 5d57512c authored by Oscar Salvador's avatar Oscar Salvador Committed by Wupeng Ma
Browse files

mm/hugetlb: add missing VM_FAULT_SET_HINDEX in hugetlb_wp

mainline inclusion
from mainline-v6.10-rc1
commit 88e4f525002bd3c28fe7a272ffcce743d07c02bd
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/IB0OV7

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=88e4f525002bd3c28fe7a272ffcce743d07c02bd

--------------------------------

commit 1cb9dc4b ("mm: hwpoison: support recovery from HugePage
copy-on-write faults") added support to use the mc variants when coping
hugetlb pages on CoW faults.

Add the missing VM_FAULT_SET_HINDEX, so the right si_addr_lsb will be
passed to userspace to report the extension of the faulty area.

Link: https://lkml.kernel.org/r/20240509100148.22384-3-osalvador@suse.de


Signed-off-by: default avatarOscar Salvador <osalvador@suse.de>
Acked-by: default avatarPeter Xu <peterx@redhat.com>
Acked-by: default avatarAxel Rasmussen <axelrasmussen@google.com>
Cc: Liu Shixin <liushixin2@huawei.com>
Cc: Muchun Song <muchun.song@linux.dev>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>

Conflicts:
	mm/hugetlb.c
[Ma Wupeng: context conflict]
Signed-off-by: default avatarMa Wupeng <mawupeng1@huawei.com>
parent 9fb43955
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -4730,7 +4730,7 @@ static vm_fault_t hugetlb_cow(struct mm_struct *mm, struct vm_area_struct *vma,

	if (copy_user_huge_page(new_page, old_page, address, vma,
			    pages_per_huge_page(h))) {
		ret = VM_FAULT_HWPOISON_LARGE;
		ret = VM_FAULT_HWPOISON_LARGE | VM_FAULT_SET_HINDEX(hstate_index(h));
		goto out_release_all;
	}
	__SetPageUptodate(new_page);