Re: [PATCH 0/2] Fix parameter passed to page_mapcount_is_type()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 21.03.25 12:25, Gavin Shan wrote:
On 3/21/25 8:11 PM, David Hildenbrand wrote:
On 21.03.25 10:23, Vlastimil Babka wrote:
On 3/21/25 06:31, Gavin Shan wrote:
Found by code inspection. There are two places where the parameter
passed to page_mapcount_is_type() is (page->__mapcount), which is
correct since it should be one more than the value, as explained in
the comments to page_mapcount_is_type(): (a) page_has_type() in
page-flags.h (b) __dump_folio() in mm/debug.c

IIUC you are right. Luckily thanks to the the PGTY_mapcount_underflow limit,
this off-by-one error doesn't currently cause visible issues i.e.
misclassifications legitimate mapcount as page type and vice versa, right?
We'd have to have a mapcount underflown severely right to the limit to make
that off-by-one error cross it?

Agreed. Likely not stable material because it isn't actually fixing anything (because of the safety gaps).


Yes, it shouldn't cause any visible impacts so far due to the gap.
I just found the issue by code inspection. Lets drop the fix tags
in v2.


I wonder if a more future-proof solution would be to redefine
page_mapcount_is_type() instead to not subtract. But I'll leave that to willy.

With upcoming changes around that, likely best to leave that alone. I expect page_mapcount_is_type() to completely vanish.


+1 to remove page_mapcount_is_type(). After Willy confirms, I can post
an extra series to do it if needed.

I think we should only do that one Willy splits struct folio off from, struct page, storing the type elsewhere. For now, we should likely just leave it as is.

--
Cheers,

David / dhildenb





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux