# Re: flush\_kernel\_dcache\_page fixes and removal

- From: Herbert Xu \<herbert@gondor.apana.org.au\>
- Date: 2021-07-19 05:39:59 
- List: linux-doc
- Page: https://ratatoskr.run/linux-doc/2021/07/1448715
- Thread: https://ratatoskr.run/linux-arm-kernel/2021/07/1439128/t.md

```text
Russell King Oracle [ref] 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 [ref]
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
```
