compiler.h: cast away attributes in WRITE_ONCE magic
authorChristian Borntraeger <borntraeger@de.ibm.com>
Tue, 4 Aug 2015 07:33:44 +0000 (09:33 +0200)
committerChristian Borntraeger <borntraeger@de.ibm.com>
Tue, 4 Aug 2015 07:44:51 +0000 (09:44 +0200)
commitc231afa3ccf176490dcafc3666559e7567690e76
tree18edb6e3ef416475279d372b622f2465ef1a9ea0
parent412758cb26704e5087ca2976ec3b28fb2bdbfad4
compiler.h: cast away attributes in WRITE_ONCE magic

kernel build bot showed a warning triggered by commit
76695af20c01 ("locking, arch: use WRITE_ONCE()/READ_ONCE() in
smp_store_release()/smp_load_acquire()"). Turns out that sparse
does not like WRITE_ONCE accessing elements from the (sparse)
rcu address space.

fs/afs/inode.c:448:9: sparse: incorrect type in initializer (different address spaces)
fs/afs/inode.c:448:9:    expected struct afs_permits *__val
fs/afs/inode.c:448:9:    got void [noderef] <asn:4>*<noident>

Solution is to force cast away the sparse attributes for the initializer
of the union in WRITE_SAME. As this now gets too long, lets split
the macro.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
include/linux/compiler.h