]> www.infradead.org Git - users/willy/pagecache.git/commitdiff
fs/proc/task_mmu: fix pagemap flags with PMD THP entries on 32bit
authorDavid Hildenbrand <david@redhat.com>
Tue, 17 Dec 2024 19:50:00 +0000 (20:50 +0100)
committerAndrew Morton <akpm@linux-foundation.org>
Tue, 31 Dec 2024 01:59:08 +0000 (17:59 -0800)
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>
fs/proc/task_mmu.c

index 38a5a3e9cba2090bd129f12ca2f079c019bfdfdc..f02cd362309a084cd0a84a2f9f07454bcabdd25a 100644 (file)
@@ -1810,7 +1810,7 @@ static int pagemap_pmd_range(pmd_t *pmdp, unsigned long addr, unsigned long end,
                }
 
                for (; addr != end; addr += PAGE_SIZE, idx++) {
-                       unsigned long cur_flags = flags;
+                       u64 cur_flags = flags;
                        pagemap_entry_t pme;
 
                        if (folio && (flags & PM_PRESENT) &&