mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
mm/memory-failure: hold PTL in hwpoison_hugetlb_range
Hold PTL in hwpoison_hugetlb_range() to avoid operating on stale page, as hwpoison_pte_range() have done. This change is not known to address any issues which users have experienced. Link: https://lkml.kernel.org/r/20250725033112.2690158-1-tujinjiang@huawei.com Signed-off-by: Jinjiang Tu <tujinjiang@huawei.com> Acked-by: David Hildenbrand <david@redhat.com> Cc: Andrei Vagin <avagin@gmail.com> Cc: Andrii Nakryiko <andrii@kernel.org> Cc: Baolin Wang <baolin.wang@linux.alibaba.com> Cc: Brahmajit Das <brahmajit.xyz@gmail.com> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Christophe Leroy <christophe.leroy@csgroup.eu> Cc: David Rientjes <rientjes@google.com> Cc: Dev Jain <dev.jain@arm.com> Cc: Hugh Dickins <hughd@google.com> Cc: Joern Engel <joern@logfs.org> Cc: Kefeng Wang <wangkefeng.wang@huawei.com> Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> Cc: Michal Hocko <mhocko@suse.com> Cc: Ryan Roberts <ryan.roberts@arm.com> Cc: Thiago Jung Bauermann <thiago.bauermann@linaro.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
6c2da14ae1
commit
9109bd5255
@ -837,11 +837,17 @@ static int hwpoison_hugetlb_range(pte_t *ptep, unsigned long hmask,
|
||||
struct mm_walk *walk)
|
||||
{
|
||||
struct hwpoison_walk *hwp = walk->private;
|
||||
pte_t pte = huge_ptep_get(walk->mm, addr, ptep);
|
||||
struct hstate *h = hstate_vma(walk->vma);
|
||||
spinlock_t *ptl;
|
||||
pte_t pte;
|
||||
int ret;
|
||||
|
||||
return check_hwpoisoned_entry(pte, addr, huge_page_shift(h),
|
||||
hwp->pfn, &hwp->tk);
|
||||
ptl = huge_pte_lock(h, walk->mm, ptep);
|
||||
pte = huge_ptep_get(walk->mm, addr, ptep);
|
||||
ret = check_hwpoisoned_entry(pte, addr, huge_page_shift(h),
|
||||
hwp->pfn, &hwp->tk);
|
||||
spin_unlock(ptl);
|
||||
return ret;
|
||||
}
|
||||
#else
|
||||
#define hwpoison_hugetlb_range NULL
|
||||
|
Loading…
Reference in New Issue
Block a user