On Fri, Apr 16, 2021 at 04:27:55PM +0100, Matthew Wilcox wrote: > On Thu, Apr 15, 2021 at 08:08:32PM +0200, Jesper Dangaard Brouer wrote: > > See below patch. Where I swap32 the dma address to satisfy > > page->compound having bit zero cleared. (It is the simplest fix I could > > come up with). > > I think this is slightly simpler, and as a bonus code that assumes the > old layout won't compile. So, why do we even do this crappy overlay of a dma address? This just all seems like a giant hack. Random subsystems should not just steal a few struct page fields as that just turns into the desasters like the one we've seen here or probably something worse next time.