Helge Deller wrote... > Commit ee62ce7a1d90 ("page_pool: Track DMA-mapped pages and unmap them when > destroying the pool") changed PP_MAGIC_MASK from 0xFFFFFFFC to 0xc000007c on > 32-bit platforms. > > The function page_pool_page_is_pp() uses PP_MAGIC_MASK to identify page pool > pages, but the remaining bits are not sufficient to unambiguously identify > such pages any longer. > > So page_pool_page_is_pp() now sometimes wrongly reports pages as page pool > pages and as such triggers a kernel BUG as it believes it found a page pool > leak. > > There are patches upcoming where page_pool_page_is_pp() will not depend on > PP_MAGIC_MASK and instead use page flags to identify page pool pages. Until > those patches are merged, the easiest temporary fix is to disable the check > on 32-bit platforms. > > Cc: Jesper Dangaard Brouer > Cc: Ilias Apalodimas > Cc: David Hildenbrand > Acked-by: David Hildenbrand > Cc: Toke Høiland-Jørgensen > Cc: Linux Memory Management List > Cc: netdev@vger.kernel.org > Cc: Linux parisc List > Cc: # v6.15+ > Signed-off-by: Helge Deller > Link: https://www.spinics.net/lists/kernel/msg5849623.html > Fixes: ee62ce7a1d90 ("page_pool: Track DMA-mapped pages and unmap them when destroying the pool") Tested-by: Christoph Biedl