Re: [PATCH] vmap(): don't allow invalid pages

From: Matthew Wilcox
Date: Wed Jan 19 2022 - 11:27:51 EST


On Wed, Jan 19, 2022 at 01:28:14PM +0000, Robin Murphy wrote:
> > + if (WARN_ON(!pfn_valid(page_to_pfn(page))))
>
> Is it page_to_pfn() guaranteed to work without blowing up if page is invalid
> in the first place? Looking at the CONFIG_SPARSEMEM case I'm not sure that's
> true...

Even if it does blow up, at least it's blowing up here where someone
can start to debug it, rather than blowing up on first access, where
we no longer have the invlid struct page pointer.

I don't think we have a 'page_valid' function which will tell us whether
a random pointer is actually a struct page or not.