aboutsummaryrefslogtreecommitdiff
path: root/include/linux/platform_data
diff options
context:
space:
mode:
authorChristian Borntraeger <borntraeger@de.ibm.com>2014-11-25 10:01:16 +0100
committerMoyster <oysterized@gmail.com>2016-09-10 15:10:20 +0200
commit3115ea21e2779aeee64b8dcdc28b62430981aa87 (patch)
treed9550b474fcd8c0933e99d5eabb4193f69b6bfe2 /include/linux/platform_data
parent73c4b453fe8ff68cd76799451368115ab7dcaba4 (diff)
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: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'include/linux/platform_data')
0 files changed, 0 insertions, 0 deletions