flush_kernel_dcache_page fixes and removal

Herbert Xu herbert at gondor.apana.org.au
Sun Jul 18 22:38:51 PDT 2021


Russell King Oracle <linux at armlinux.org.uk> wrote:
>
> I think you need to be careful - I seem to have a recollection that the
> reason we ended up with flush_kernel_dcache_page() was the need to avoid
> the taking of the mmap lock for 32-bit ARM VIVT based CPUs in
> flush_dcache_page(). 32-bit ARM flush_dcache_page() can block.
> 
> If you're sure that all these changes you're making do not end up
> calling flush_dcache_page() from a path where we are atomic, then fine.

The Crypto API has been calling flush_dcache_page from softirq
context since before the advent of git (see crypto/scatterwalk.c
from the initial import).  So if 32-bit ARM blocks on it then this
has been broken for almost 20 years.

Cheers,
-- 
Email: Herbert Xu <herbert at gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt



More information about the linux-arm-kernel mailing list