On Thu, Jun 13, 2019 at 07:05:07PM +0000, Jason Gunthorpe wrote: > Hurm, is hmm following this comment from mm_types.h? > > * If you allocate the page using alloc_pages(), you can use some of the > * space in struct page for your own purposes. The five words in the main > * union are available, except for bit 0 of the first word which must be > * kept clear. Many users use this word to store a pointer to an object > * which is guaranteed to be aligned. If you use the same storage as > * page->mapping, you must restore it to NULL before freeing the page. > > Maybe the assumption was that a driver is using ->mapping ? Maybe. The union layou in struct page certainly doesn't help..