On Sat, Mar 15, 2025 at 09:06:31PM -0700, Andrew Morton wrote: > > I do think it would be nicer to write this as a real inlined C function > and to convert usage sites to raid6_empty_zero_page(). IOW, let's tell > the truth rather than pretending that raid6_empty_zero_page is a global > variable. OK I can do that. > Is there any possibility that the MD drivers will point DMA hardware at > the global zero page, thereby invalidating that page from CPU caches in > some manner? The only spots that can hand this off to DMA are: crypto/async_tx/async_pq.c: srcs[i] = (void*)raid6_empty_zero_page; crypto/async_tx/async_raid6_recov.c: ptrs[i] = (void *) raid6_empty_zero_page; crypto/async_tx/async_raid6_recov.c: ptrs[i] = (void*)raid6_empty_zero_page; But they all turn out to be synchronous fallback code paths that do not involve DMA at all. Cheers, -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt