[PATCH v3 0/6] Fix incorrect access of hugetlb pte entries
Dev Jain
dev.jain at arm.com
Fri Jul 3 04:41:53 PDT 2026
There are various places which use ptep_get() to get the pte entry
corresponding to a hugetlb folio. Some arches (like s390) have special
handling to compute the pteval, so they provide huge_ptep_get(). Use this
helper consistently.
Additionally, some code paths may provide huge_ptep_get with an unaligned
address. This is a problem on arm64 (I checked other arches and it looks
fine for them), which is fixed in patch 1. The fix is made to be
backport-friendly: the cleaner fix would be to perhaps pass the hstate
to huge_ptep_get() - that is wider churn and we can do that later.
---
v2->v3:
- Place comment at appropriate place in patches 2 and 3
- Modify indentation in patch 2, patch 6
v1->v2:
- Add patch 1
- Mention s390 in cover letter
Dev Jain (6):
arm64: make huge_ptep_get handled unaligned addresses
mm/rmap: use huge_ptep_get() in try_to_unmap_one()
mm/rmap: use huge_ptep_get() in try_to_migrate_one()
mm/migrate: use huge_ptep_get() in remove_migration_pte()
mm/page_vma_mapped: use huge_ptep_get() for hugetlb
mm/mprotect: use huge_ptep_get() for hugetlb
arch/arm64/mm/hugetlbpage.c | 2 +-
include/linux/hugetlb.h | 2 ++
mm/migrate.c | 6 +++++-
mm/mprotect.c | 12 +++++++++---
mm/page_vma_mapped.c | 8 +++++++-
mm/rmap.c | 32 ++++++++++++++++++++------------
6 files changed, 44 insertions(+), 18 deletions(-)
--
2.43.0
More information about the linux-arm-kernel
mailing list