Re: [PATCH v2] buffer: Fix I/O error due to ARM read-after-read hazard
From: Herbert Xu
Date: Thu Nov 14 2019 - 08:29:16 EST
Will Deacon <will@xxxxxxxxxx> wrote:
>
> which is what can happen due to this erratum. It's generally good practice
> to use READ_ONCE() when reading something which can be updated concurrently
> because:
>
> * It ensures that the value is (re-)loaded from memory
>
> * It prevents the compiler from performing harmful optimisations,
> such as merging or tearing (although in this case I suspect
> these are ok because we're dealing with a single bit)
>
> * On Alpha, it gives you a barrier so that dependency ordering
> can be relied upon from the load
The Alpha barrier matters for pointers, how could it make a
difference for individual bits?
Cheers,
--
Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt