Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 9b13beb9 authored by Christian Borntraeger's avatar Christian Borntraeger Committed by Vincent Zvikaramba
Browse files

UPSTREAM: kernel: Provide READ_ONCE and ASSIGN_ONCE

ACCESS_ONCE does not work reliably on non-scalar types. For
example gcc 4.6 and 4.7 might remove the volatile tag for such
accesses during the SRA (scalar replacement of aggregates) step
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58145

)

Let's provide READ_ONCE/ASSIGN_ONCE that will do all accesses via
scalar types as suggested by Linus Torvalds. Accesses larger than
the machines word size cannot be guaranteed to be atomic. These
macros will use memcpy and emit a build warning.

Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>

Bug: 28705983
(cherry picked from commit 230fa253df6352af12ad0a16128760b5cb3f92df)
Change-Id: I6235247c7b3a5e14093d477417000ed82f7586a3
parent e69391d3
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment