tree:
https://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc.git topic-zol-remove
head: 706f0ffb515d976d57112a19f9b11049d473848c
commit: 0f81f9cfa6066b6ada647ea1621509f05106f37a [31/50] ARC: cmpxchg/xchg: rewrite as
macros to make type safe
config: arc-randconfig-s001-20200520 (attached as .config)
compiler: arc-elf-gcc (GCC) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-193-gb8fad4bc-dirty
git checkout 0f81f9cfa6066b6ada647ea1621509f05106f37a
# save the attached .config to linux build tree
make W=1 C=1 ARCH=arc CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
net/core/sock.c:1120:25: sparse: sparse: undefined identifier
'__builtin_arc_sr'
include/linux/atomic-fallback.h:918:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a
function <noident>
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a function
<noident>
include/linux/atomic-fallback.h:957:13: sparse: sparse: undefined
identifier '__builtin_arc_sr'
--
include/linux/atomic-fallback.h:918:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a
function <noident>
include/asm-generic/atomic-long.h:906:16: sparse:
sparse: undefined identifier '__builtin_arc_sr'
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a
function <noident>
include/linux/atomic-fallback.h:957:13: sparse: sparse:
undefined identifier '__builtin_arc_sr'
include/linux/atomic-fallback.h:957:13: sparse: sparse: not a function <noident>
include/linux/atomic-fallback.h:957:13: sparse: sparse: not a function <noident>
--
net/core/dev.c:3185:23: sparse: sparse: incorrect type in argument 4 (different base
types) @@ expected restricted __wsum [usertype] csum @@ got [usertype] csum @@
net/core/dev.c:3185:23: sparse: expected restricted __wsum [usertype] csum
net/core/dev.c:3185:23: sparse: got unsigned int
net/core/dev.c:3185:23: sparse: sparse: cast from restricted __wsum
net/core/dev.c:3185:23: sparse: sparse: incorrect type in argument 4 (different base
types) @@ expected restricted __wsum [usertype] csum @@ got [usertype] csum @@
net/core/dev.c:3185:23: sparse: expected restricted __wsum [usertype] csum
net/core/dev.c:3185:23: sparse: got unsigned int
net/core/dev.c:3185:23: sparse: sparse: incorrect type in argument 1 (different base
types) @@ expected unsigned int [usertype] val @@ got d int [usertype] val @@
net/core/dev.c:3185:23: sparse: expected unsigned int [usertype] val
net/core/dev.c:3185:23: sparse: got restricted __wsum
net/core/dev.c:3185:23: sparse: sparse: incorrect type in argument 4 (different base
types) @@ expected restricted __wsum [usertype] csum @@ got [usertype] csum @@
net/core/dev.c:3185:23: sparse: expected restricted __wsum [usertype] csum
net/core/dev.c:3185:23: sparse: got unsigned int
net/core/dev.c:3185:23: sparse: sparse: cast from restricted __wsum
net/core/dev.c:3185:23: sparse: sparse: incorrect type in argument 4 (different base
types) @@ expected restricted __wsum [usertype] csum @@ got [usertype] csum @@
net/core/dev.c:3185:23: sparse: expected restricted __wsum [usertype] csum
net/core/dev.c:3185:23: sparse: got unsigned int
net/core/dev.c:3185:23: sparse: sparse: cast from restricted __wsum
net/core/dev.c:3185:23: sparse: sparse: incorrect type in argument 4 (different base
types) @@ expected restricted __wsum [usertype] csum @@ got [usertype] csum @@
net/core/dev.c:3185:23: sparse: expected restricted __wsum [usertype] csum
net/core/dev.c:3185:23: sparse: got unsigned int
net/core/dev.c:3185:23: sparse: sparse: cast from restricted __wsum
net/core/dev.c:3185:23: sparse: sparse: incorrect type in argument 4 (different base
types) @@ expected restricted __wsum [usertype] csum @@ got [usertype] csum @@
net/core/dev.c:3185:23: sparse: expected restricted __wsum [usertype] csum
net/core/dev.c:3185:23: sparse: got unsigned int
net/core/dev.c:3185:23: sparse: sparse: cast from restricted __wsum
net/core/dev.c:6209:18: sparse: sparse: undefined identifier
'__builtin_arc_sr'
net/core/dev.c:6279:18: sparse: sparse: undefined identifier
'__builtin_arc_sr'
net/core/dev.c:6377:29: sparse: sparse: undefined identifier
'__builtin_arc_sr'
include/linux/atomic-fallback.h:918:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a
function <noident>
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a function
<noident>
--
include/linux/atomic-fallback.h:918:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a
function <noident>
--
net/netfilter/nf_conntrack_core.c:2310:9: sparse: sparse: incompatible types in
comparison expression (different address spaces):
net/netfilter/nf_conntrack_core.c:2310:9: sparse: void ( [noderef] <asn:4> *
)( ... )
net/netfilter/nf_conntrack_core.c:2310:9: sparse: void ( * )( ... )
net/netfilter/nf_conntrack_core.c:2627:9: sparse: sparse: incompatible types in
comparison expression (different address spaces):
net/netfilter/nf_conntrack_core.c:2627:9: sparse: void ( [noderef] <asn:4> *
)( ... )
net/netfilter/nf_conntrack_core.c:2627:9: sparse: void ( * )( ... )
net/netfilter/nf_conntrack_core.c:113:13: sparse: sparse: context imbalance in
'nf_conntrack_double_unlock' - unexpected unlock
net/netfilter/nf_conntrack_core.c:123:13: sparse: sparse: context imbalance in
'nf_conntrack_double_lock' - wrong count at exit
net/netfilter/nf_conntrack_core.c:153:9: sparse: sparse: context imbalance in
'nf_conntrack_all_lock' - wrong count at exit
net/netfilter/nf_conntrack_core.c:164:13: sparse: sparse: context imbalance in
'nf_conntrack_all_unlock' - unexpected unlock
include/linux/atomic-fallback.h:918:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a
function <noident>
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a function
<noident>
>
include/linux/atomic-fallback.h:918:13: sparse: sparse: not a function <noident>
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a function
<noident>
--
net/netfilter/nf_conntrack_netlink.c:1693:34: sparse: sparse: incompatible types in
comparison expression (different address spaces):
net/netfilter/nf_conntrack_netlink.c:1693:34: sparse: struct nf_conntrack_helper
[noderef] <asn:4> *
net/netfilter/nf_conntrack_netlink.c:1693:34: sparse: struct nf_conntrack_helper *
net/netfilter/nf_conntrack_netlink.c:3145:29: sparse: sparse: incorrect type in
argument 1 (different address spaces) @@ expected char const *cs @@ got char
[noderechar const *cs @@
net/netfilter/nf_conntrack_netlink.c:3145:29: sparse: expected char const *cs
net/netfilter/nf_conntrack_netlink.c:3145:29: sparse: got char [noderef]
<asn:4> *
include/linux/atomic-fallback.h:918:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a
function <noident>
include/linux/atomic-fallback.h:957:13: sparse: sparse:
undefined identifier '__builtin_arc_sr'
include/linux/atomic-fallback.h:957:13: sparse: sparse: not a function <noident>
--
net/ipv4/route.c:496:27: sparse: sparse: undefined identifier
'__builtin_arc_sr'
net/ipv4/route.c:503:18: sparse: sparse: undefined identifier
'__builtin_arc_sr'
net/ipv4/route.c:783:46: sparse: sparse: incorrect type in argument 2 (different base
types) @@ expected unsigned int [usertype] key @@ got restrunsigned int [usertype]
key @@
net/ipv4/route.c:783:46: sparse: expected unsigned int [usertype] key
net/ipv4/route.c:783:46: sparse: got restricted __be32 [usertype] new_gw
net/ipv4/route.c:1485:16: sparse: sparse: undefined identifier
'__builtin_arc_sr'
net/ipv4/route.c:3020:27: sparse: sparse: incorrect type in assignment (different base
types) @@ expected restricted __be16 [usertype] len @@ got [usertype] len @@
net/ipv4/route.c:3020:27: sparse: expected restricted __be16 [usertype] len
net/ipv4/route.c:3020:27: sparse: got unsigned int
include/net/route.h:366:48: sparse: sparse: incorrect type in argument 2 (different
base types) @@ expected unsigned int [usertype] key @@ got restrunsigned int
[usertype] key @@
include/net/route.h:366:48: sparse: expected unsigned int [usertype] key
include/net/route.h:366:48: sparse: got restricted __be32 [usertype] daddr
include/net/route.h:366:48: sparse: sparse: incorrect type in argument 2 (different
base types) @@ expected unsigned int [usertype] key @@ got restrunsigned int
[usertype] key @@
include/net/route.h:366:48: sparse: expected unsigned int [usertype] key
include/net/route.h:366:48: sparse: got restricted __be32 [usertype] daddr
include/linux/atomic-fallback.h:957:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
include/linux/atomic-fallback.h:957:13: sparse: sparse: not a function <noident>
include/linux/atomic-fallback.h:918:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a
function <noident>
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a function
<noident>
>
include/linux/atomic-fallback.h:918:13: sparse: sparse: not a function <noident>
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a function
<noident>
--
net/ipv4/tcp_ipv4.c:2681:41: sparse: sparse: incorrect type in argument 1 (different
address spaces) @@ expected void const *data @@ got struct tcp_congestion_ops const
[noderevoid const *data @@
net/ipv4/tcp_ipv4.c:2681:41: sparse: expected void const *data
net/ipv4/tcp_ipv4.c:2681:41: sparse: got struct tcp_congestion_ops const [noderef]
<asn:4> *tcp_congestion_control
net/ipv4/tcp_ipv4.c:2789:45: sparse: sparse: incorrect type in argument 1 (different
address spaces) @@ expected void const *data @@ got struct tcp_congestion_ops const
[noderef] <asn:4> *extern [addressable]void const *data @@
net/ipv4/tcp_ipv4.c:2789:45: sparse: expected void const *data
net/ipv4/tcp_ipv4.c:2789:45: sparse: got struct tcp_congestion_ops const [noderef]
<asn:4> *extern [addressable] [toplevel] tcp_congestion_control
net/ipv4/tcp_ipv4.c:2793:50: sparse: sparse: incorrect type in assignment (different
address spaces) @@ expected struct tcp_congestion_ops const [noderef] <asn:4>
*tcp_congestion_control @@ got s const [noderef] <asn:4> *tcp_congestion_control
@@
net/ipv4/tcp_ipv4.c:2793:50: sparse: expected struct tcp_congestion_ops const
[noderef] <asn:4> *tcp_congestion_control
net/ipv4/tcp_ipv4.c:2793:50: sparse: got struct tcp_congestion_ops *
arch/arc/include/asm/checksum.h:27:22: sparse: sparse: restricted __wsum degrades to
integer
arch/arc/include/asm/checksum.h:27:32: sparse: sparse: restricted __wsum degrades to
integer
arch/arc/include/asm/checksum.h:29:11: sparse: sparse: bad assignment (-=) to
restricted __wsum
arch/arc/include/asm/checksum.h:30:16: sparse: sparse: restricted __wsum degrades to
integer
arch/arc/include/asm/checksum.h:30:18: sparse: sparse: incorrect type in return
expression (different base types) @@ expected restricted __sum16 @@ got cted __sum16
@@
arch/arc/include/asm/checksum.h:30:18: sparse: expected restricted __sum16
arch/arc/include/asm/checksum.h:30:18: sparse: got unsigned int
include/linux/atomic-fallback.h:918:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a
function <noident>
--
> net/ipv4/tcp_cong.c:228:24: sparse: sparse: incorrect type in
initializer (different address spaces) @@ expected struct tcp_congestion_ops const
[noderef] <asn:4> *_val_ @@ got ngestion_ops const [noderef] <asn:4> *_val_
@@
> net/ipv4/tcp_cong.c:228:24: sparse: expected struct tcp_congestion_ops const
[noderef] <asn:4> *_val_
net/ipv4/tcp_cong.c:228:24: sparse: got struct
tcp_congestion_ops *[assigned] ca
net/ipv4/tcp_cong.c:228:22: sparse: sparse: incorrect type in assignment (different
address spaces) @@ expected struct tcp_congestion_ops const *prev @@ got struct
tcp_congestion_ops construct tcp_congestion_ops const *prev @@
net/ipv4/tcp_cong.c:228:22: sparse: expected struct tcp_congestion_ops const *prev
> net/ipv4/tcp_cong.c:228:22: sparse: got struct
tcp_congestion_ops const [noderef] <asn:4> *[assigned] _val_
--
include/linux/atomic-fallback.h:957:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
include/linux/atomic-fallback.h:918:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a
function <noident>
include/linux/atomic-fallback.h:957:13: sparse: sparse:
not a function <noident>
--
net/xfrm/xfrm_policy.c:1293:22: sparse: sparse: incorrect type in assignment (different
address spaces) @@ expected struct hlist_head *odst @@ got struct hlist_head struct
hlist_head *odst @@
net/xfrm/xfrm_policy.c:1293:22: sparse: expected struct hlist_head *odst
net/xfrm/xfrm_policy.c:1293:22: sparse: got struct hlist_head [noderef]
<asn:4> *table
net/xfrm/xfrm_policy.c:3952:43: sparse: sparse: incompatible types in comparison
expression (different address spaces):
net/xfrm/xfrm_policy.c:3952:43: sparse: struct xfrm_policy_afinfo const [noderef]
<asn:4> *
net/xfrm/xfrm_policy.c:3952:43: sparse: struct xfrm_policy_afinfo const *
net/xfrm/xfrm_policy.c:4042:29: sparse: sparse: incorrect type in assignment (different
address spaces) @@ expected struct hlist_head [noderef] <asn:4> *table @@ got
[noderef] <asn:4> *table @@
net/xfrm/xfrm_policy.c:4042:29: sparse: expected struct hlist_head [noderef]
<asn:4> *table
net/xfrm/xfrm_policy.c:4042:29: sparse: got struct hlist_head *
net/xfrm/xfrm_policy.c:4069:36: sparse: sparse: incorrect type in argument 1 (different
address spaces) @@ expected struct hlist_head *n @@ got struct hlist_head struct
hlist_head *n @@
net/xfrm/xfrm_policy.c:4069:36: sparse: expected struct hlist_head *n
net/xfrm/xfrm_policy.c:4069:36: sparse: got struct hlist_head [noderef]
<asn:4> *table
net/xfrm/xfrm_policy.c:4097:17: sparse: sparse: incorrect type in argument 1 (different
address spaces) @@ expected struct hlist_head const *h @@ got struct hliststruct
hlist_head const *h @@
net/xfrm/xfrm_policy.c:4097:17: sparse: expected struct hlist_head const *h
net/xfrm/xfrm_policy.c:4097:17: sparse: got struct hlist_head [noderef]
<asn:4> *table
net/xfrm/xfrm_policy.c:4098:36: sparse: sparse: incorrect type in argument 1 (different
address spaces) @@ expected struct hlist_head *n @@ got struct hlist_head struct
hlist_head *n @@
net/xfrm/xfrm_policy.c:4098:36: sparse: expected struct hlist_head *n
net/xfrm/xfrm_policy.c:4098:36: sparse: got struct hlist_head [noderef]
<asn:4> *table
net/xfrm/xfrm_policy.c:244:9: sparse: sparse: context imbalance in
'xfrm_policy_get_afinfo' - different lock contexts for basic block
include/linux/rcupdate.h:653:9: sparse: sparse: context imbalance in
'__xfrm_dst_lookup' - unexpected unlock
include/linux/rbtree.h:84:9: sparse: sparse: incompatible types in comparison
expression (different address spaces):
include/linux/rbtree.h:84:9: sparse: struct rb_node [noderef] <asn:4> *
include/linux/rbtree.h:84:9: sparse: struct rb_node *
include/linux/rbtree.h:84:9: sparse: sparse: incompatible types in comparison
expression (different address spaces):
include/linux/rbtree.h:84:9: sparse: struct rb_node [noderef] <asn:4> *
include/linux/rbtree.h:84:9: sparse: struct rb_node *
include/linux/atomic-fallback.h:957:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
include/linux/atomic-fallback.h:957:13: sparse: sparse: not a function <noident>
include/linux/atomic-fallback.h:918:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a
function <noident>
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a function
<noident>
>
include/linux/atomic-fallback.h:918:13: sparse: sparse: not a function <noident>
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a function
<noident>
>
include/linux/atomic-fallback.h:918:13: sparse: sparse: not a function <noident>
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a function
<noident>
>
include/linux/atomic-fallback.h:918:13: sparse: sparse: not a function <noident>
--
include/linux/atomic-fallback.h:918:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a
function <noident>
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a function
<noident>
>
include/linux/atomic-fallback.h:918:13: sparse: sparse: not a function <noident>
--
net/ipv6/route.c:666:22: sparse: sparse: undefined identifier
'__builtin_arc_sr'
net/ipv6/route.c:1414:16: sparse: sparse: undefined identifier
'__builtin_arc_sr'
net/ipv6/route.c:2320:39: sparse: sparse: incorrect type in assignment (different base
types) @@ expected unsigned int [usertype] flow_label @@ got d int [usertype]
flow_label @@
net/ipv6/route.c:2320:39: sparse: expected unsigned int [usertype] flow_label
net/ipv6/route.c:2320:39: sparse: got restricted __be32
include/linux/atomic-fallback.h:957:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
include/linux/atomic-fallback.h:918:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a
function <noident>
include/linux/atomic-fallback.h:957:13: sparse: sparse:
not a function <noident>
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a
function <noident>
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a function
<noident>
include/linux/atomic-fallback.h:957:13: sparse: sparse: not a
function <noident>
include/linux/atomic-fallback.h:957:13: sparse: sparse: not a function <noident>
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a
function <noident>
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a function
<noident>
include/linux/atomic-fallback.h:957:13: sparse: sparse: not a
function <noident>
include/linux/atomic-fallback.h:957:13: sparse: sparse: not a function <noident>
include/linux/atomic-fallback.h:957:13: sparse: sparse: not a function <noident>
include/linux/atomic-fallback.h:957:13: sparse: sparse: not a function <noident>
include/linux/atomic-fallback.h:957:13: sparse: sparse: not a function <noident>
--
include/linux/atomic-fallback.h:918:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a
function <noident>
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a function
<noident>
--
net/rxrpc/conn_object.c:421:21: sparse: sparse: undefined identifier
'__builtin_arc_sr'
include/linux/atomic-fallback.h:918:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a
function <noident>
--
include/linux/atomic-fallback.h:957:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
include/linux/atomic-fallback.h:918:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
> include/linux/atomic-fallback.h:918:13: sparse: sparse: not a
function <noident>
--
drivers/usb/gadget/function/f_fs.c:899:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
drivers/usb/gadget/function/f_fs.c:937:13: sparse: sparse: undefined identifier
'__builtin_arc_sr'
drivers/usb/gadget/function/f_fs.c:2857:32: sparse: sparse: incorrect type in
assignment (different base types) @@ expected unsigned short [usertype] wMaxPacketSize
@@ got resunsigned short [usertype] wMaxPacketSize @@
drivers/usb/gadget/function/f_fs.c:2857:32: sparse: expected unsigned short
[usertype] wMaxPacketSize
drivers/usb/gadget/function/f_fs.c:2857:32: sparse: got restricted __le16 [usertype]
wMaxPacketSize
drivers/usb/gadget/function/f_fs.c:2882:36: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le16 [usertype]
wMaxPacketSize @@ got tricted __le16 [usertype] wMaxPacketSize @@
drivers/usb/gadget/function/f_fs.c:2882:36: sparse: expected restricted __le16
[usertype] wMaxPacketSize
drivers/usb/gadget/function/f_fs.c:2882:36: sparse: got unsigned short [usertype]
wMaxPacketSize
drivers/usb/gadget/function/f_fs.c:91:17: sparse: sparse: undefined identifier
'__builtin_arc_sr'
> drivers/usb/gadget/function/f_fs.c:91:17: sparse: sparse: not a
function <noident>
> drivers/usb/gadget/function/f_fs.c:91:17: sparse: sparse: not a function
<noident>
> drivers/usb/gadget/function/f_fs.c:91:17: sparse: sparse: not a function
<noident>
> drivers/usb/gadget/function/f_fs.c:91:17: sparse: sparse: not a function
<noident>
> drivers/usb/gadget/function/f_fs.c:91:17: sparse: sparse: not a function
<noident>
--
drivers/gpu/drm/scheduler/sched_entity.c:192:21: sparse: sparse: undefined identifier
'__builtin_arc_sr'
include/asm-generic/atomic-long.h:906:16: sparse: sparse: undefined identifier
'__builtin_arc_sr'
> include/asm-generic/atomic-long.h:906:16: sparse: sparse: not a
function <noident>
vim +918 include/linux/atomic-fallback.h
9fa45070a2e59a Mark Rutland 2018-09-04 912
9fa45070a2e59a Mark Rutland 2018-09-04 913 #ifndef atomic_try_cmpxchg
9fa45070a2e59a Mark Rutland 2018-09-04 914 static inline bool
9fa45070a2e59a Mark Rutland 2018-09-04 915 atomic_try_cmpxchg(atomic_t *v, int *old, int
new)
9fa45070a2e59a Mark Rutland 2018-09-04 916 {
9fa45070a2e59a Mark Rutland 2018-09-04 917 int r, o = *old;
9fa45070a2e59a Mark Rutland 2018-09-04 @918 r = atomic_cmpxchg(v, o, new);
9fa45070a2e59a Mark Rutland 2018-09-04 919 if (unlikely(r != o))
9fa45070a2e59a Mark Rutland 2018-09-04 920 *old = r;
9fa45070a2e59a Mark Rutland 2018-09-04 921 return likely(r == o);
9fa45070a2e59a Mark Rutland 2018-09-04 922 }
9fa45070a2e59a Mark Rutland 2018-09-04 923 #define atomic_try_cmpxchg
atomic_try_cmpxchg
9fa45070a2e59a Mark Rutland 2018-09-04 924 #endif
9fa45070a2e59a Mark Rutland 2018-09-04 925
:::::: The code at line 918 was first introduced by commit
:::::: 9fa45070a2e59a871e1cd3370173369f3a4f61e2 locking/atomics: Switch to generated
fallbacks
:::::: TO: Mark Rutland <mark.rutland(a)arm.com>
:::::: CC: Ingo Molnar <mingo(a)kernel.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org