fs/proc/task_mmu: fix pagemap flags with PMD THP entries on 32bit

BugLink: https://bugs.launchpad.net/bugs/2106632

commit 3754137d263f52f4b507cf9ae913f8f0497d1b0e upstream.

Entries (including flags) are u64, even on 32bit.  So right now we are
cutting of the flags on 32bit.  This way, for example the cow selftest
complains about:

  # ./cow
  ...
  Bail Out! read and ioctl return unmatched results for populated: 0 1

Link: https://lkml.kernel.org/r/20241217195000.1734039-1-david@redhat.com
Fixes: 2c1f057e5be6 ("fs/proc/task_mmu: properly detect PM_MMAP_EXCLUSIVE per page of PMD-mapped THPs")
Signed-off-by: David Hildenbrand <david@redhat.com>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Manuel Diewald <manuel.diewald@canonical.com>
Signed-off-by: Mehmet Basaran <mehmet.basaran@canonical.com>
This commit is contained in:
David Hildenbrand
2024-12-17 20:50:00 +01:00
committed by Mehmet Basaran
parent 0dfa1a7c5e
commit c1495b49f3
+1 -1
View File
@@ -1515,7 +1515,7 @@ static int pagemap_pmd_range(pmd_t *pmdp, unsigned long addr, unsigned long end,
flags |= PM_FILE;
for (; addr != end; addr += PAGE_SIZE, idx++) {
unsigned long cur_flags = flags;
u64 cur_flags = flags;
pagemap_entry_t pme;
if (page && (flags & PM_PRESENT) &&