Defined in 4 files as a macro:

Defined in 3 files as a function:

Referenced in 1 files:

Smatch caller information:

net/core/sock_diag.c raw_atomic64_cmpxchg() -> arch_atomic64_cmpxchg()

Type Parameter Key Value
PARAM_VALUE 0 v 4096-ptr_max
PARAM_VALUE 1 old 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 old $1
DATA_SOURCE 2 new $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &seq->lock
HALF_LOCKED2 rcu_read

lib/atomic64_test.c raw_atomic64_cmpxchg() -> arch_atomic64_cmpxchg()

Type Parameter Key Value
PARAM_VALUE 0 v 4852880703011659776
PARAM_VALUE 0 v->counter (-6151051535892492275)
PARAM_VALUE 1 old (-6151051535892492275),(-374172955480035327)
PARAM_VALUE 2 new (-2401053088876082434)
DATA_SOURCE 0 v $0
DATA_SOURCE 1 old $1
DATA_SOURCE 2 new $2
HARD_MAX 1 old (-374172955480035327)

lib/atomic64_test.c raw_atomic64_cmpxchg_acquire() -> arch_atomic64_cmpxchg()

Type Parameter Key Value
PARAM_VALUE 0 v 4852880703011659776
PARAM_VALUE 0 v->counter (-6151051535892492275)
PARAM_VALUE 1 old (-6151051535892492275),(-374172955480035327)
PARAM_VALUE 2 new (-2401053088876082434)
DATA_SOURCE 0 v $0
DATA_SOURCE 1 old $1
DATA_SOURCE 2 new $2
HARD_MAX 1 old (-374172955480035327)

lib/atomic64_test.c raw_atomic64_cmpxchg_relaxed() -> arch_atomic64_cmpxchg()

Type Parameter Key Value
PARAM_VALUE 0 v 4852880703011659776
PARAM_VALUE 0 v->counter (-6151051535892492275)
PARAM_VALUE 1 old (-6151051535892492275),(-374172955480035327)
PARAM_VALUE 2 new (-2401053088876082434)
DATA_SOURCE 0 v $0
DATA_SOURCE 1 old $1
DATA_SOURCE 2 new $2
HARD_MAX 1 old (-374172955480035327)

lib/atomic64_test.c raw_atomic64_cmpxchg_release() -> arch_atomic64_cmpxchg()

Type Parameter Key Value
PARAM_VALUE 0 v 4852880703011659776
PARAM_VALUE 0 v->counter (-6151051535892492275)
PARAM_VALUE 1 old (-6151051535892492275),(-374172955480035327)
PARAM_VALUE 2 new (-2401053088876082434)
DATA_SOURCE 0 v $0
DATA_SOURCE 1 old $1
DATA_SOURCE 2 new $2
HARD_MAX 1 old (-374172955480035327)

kernel/trace/trace_osnoise.c raw_atomic64_cmpxchg_relaxed() -> arch_atomic64_cmpxchg()

Type Parameter Key Value
PARAM_VALUE 0 v 8381166366679490560
PARAM_VALUE 1 old 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 old $1
DATA_SOURCE 2 new $2

drivers/gpu/drm/scheduler/sched_entity.c raw_atomic64_cmpxchg() -> arch_atomic64_cmpxchg()

Type Parameter Key Value
PARAM_VALUE 0 v 4096-ptr_max
PARAM_VALUE 1 old s64min-(-1),1-s64max
PARAM_VALUE 2 new s64min-(-4096),4096-s64max
DATA_SOURCE 0 v $0
DATA_SOURCE 1 old $1
DATA_SOURCE 2 new $2
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock

fs/ext4/fast_commit.c raw_atomic64_cmpxchg() -> arch_atomic64_cmpxchg()

Type Parameter Key Value
PARAM_VALUE 0 v 4096-ptr_max
PARAM_VALUE 1 old s64min-(-2),0-s64max
PARAM_VALUE 2 new s64min-(-1),1-s64max
CAPPED_DATA 1 old 1
CAPPED_DATA 1 old 1
DATA_SOURCE 0 v $0
DATA_SOURCE 1 old $1
DATA_SOURCE 2 new $2
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &inode->i_rwsem

kernel/printk/printk_ringbuffer.c raw_atomic64_cmpxchg() -> arch_atomic64_cmpxchg()

Type Parameter Key Value
PARAM_VALUE 0 v 4096-ptr_max
PARAM_VALUE 0 v->counter 0-4611686018427387903
PARAM_VALUE 1 old 0-4611686018427387903
PARAM_VALUE 2 new 0-4611686018427387903
CAPPED_DATA 1 old 1
CAPPED_DATA 1 old 1
CAPPED_DATA 2 new 1
CAPPED_DATA 2 new 1
DATA_SOURCE 0 v $0
DATA_SOURCE 1 old $1
DATA_SOURCE 2 new $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 e->irqflags
HALF_LOCKED2 irq
HALF_LOCKED2 irqflags

kernel/printk/printk_ringbuffer.c raw_atomic64_cmpxchg_relaxed() -> arch_atomic64_cmpxchg()

Type Parameter Key Value
PARAM_VALUE 0 v 4096-ptr_max
PARAM_VALUE 1 old s64min-(-4611686018427387905)
PARAM_VALUE 2 new (-4611686018427387904)-(-1)
CAPPED_DATA 1 old 1
CAPPED_DATA 1 old 1
CAPPED_DATA 2 new 1
CAPPED_DATA 2 new 1
DATA_SOURCE 0 v $0
DATA_SOURCE 1 old $1
DATA_SOURCE 2 new $2
BIT_INFO 1 old 0x8000000000000000,0xbfffffffffffffff
BIT_INFO 1 old 0x8000000000000000,0xbfffffffffffffff
BIT_INFO 2 new 0xc000000000000000,0xffffffffffffffff
BIT_INFO 2 new 0xc000000000000000,0xffffffffffffffff
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 e->irqflags
HALF_LOCKED2 irqflags

mm/kasan/kasan_test_c.c raw_atomic64_cmpxchg() -> arch_atomic64_cmpxchg()

Type Parameter Key Value
PARAM_VALUE 0 v 4096-ptr_max
PARAM_VALUE 1 old 21
PARAM_VALUE 2 new 42
DATA_SOURCE 0 v $0
DATA_SOURCE 1 old $1
DATA_SOURCE 2 new $2

security/landlock/id.c raw_atomic64_cmpxchg() -> arch_atomic64_cmpxchg()

Type Parameter Key Value
PARAM_VALUE 0 v 110462154930520064,6643675793384673280,6655470504887341056,8776791297932079104
PARAM_VALUE 1 old 0
PARAM_VALUE 2 new 4294967296-8589934591
DATA_SOURCE 0 v $0
DATA_SOURCE 1 old $1
DATA_SOURCE 2 new $2

lib/test_lockup.c raw_atomic64_cmpxchg() -> arch_atomic64_cmpxchg()

Type Parameter Key Value
PARAM_VALUE 0 v 6356003204875952128
CAPPED_DATA 1 old 1
CAPPED_DATA 1 old 1
DATA_SOURCE 0 v $0
DATA_SOURCE 1 old $1
DATA_SOURCE 2 new $2
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 bh
HALF_LOCKED2 global &main_task->mm->mmap_lock
HALF_LOCKED2 global lock_mutex_ptr
HALF_LOCKED2 global lock_rwlock_ptr
HALF_LOCKED2 global lock_rwsem_ptr
HALF_LOCKED2 global lock_spinlock_ptr
HALF_LOCKED2 irq
HALF_LOCKED2 rcu_read

fs/btrfs/extent_map.c raw_atomic64_cmpxchg() -> arch_atomic64_cmpxchg()

Type Parameter Key Value
PARAM_VALUE 0 v 4096-ptr_max
PARAM_VALUE 1 old 0
PARAM_VALUE 2 new 0,s64max
CAPPED_DATA 2 new 1
CAPPED_DATA 2 new 1
DATA_SOURCE 0 v $0
DATA_SOURCE 1 old $1
DATA_SOURCE 2 new $2
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 2 new
LOCK2 &sb->s_umount
HALF_LOCKED2 global &bch_register_lock
TYPE_LOCK (struct super_block)->s_umount

kernel/events/core.c raw_atomic64_cmpxchg() -> arch_atomic64_cmpxchg()

Type Parameter Key Value
PARAM_VALUE 0 v 4096-ptr_max
PARAM_VALUE 1 old 1
PARAM_VALUE 2 new 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 old $1
DATA_SOURCE 2 new $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 &parent_ctx->mutex
LOCK2 _T->lock
TYPE_LOCK (struct perf_event_context)->mutex

fs/hfs/catalog.c raw_atomic64_cmpxchg() -> arch_atomic64_cmpxchg()

Type Parameter Key Value
PARAM_VALUE 0 v 4096-ptr_max
PARAM_VALUE 1 old 0-4294967295
PARAM_VALUE 2 new 0-4294967295
DATA_SOURCE 0 v $0
DATA_SOURCE 1 old $1
DATA_SOURCE 2 new $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 &(sb->s_fs_info)->cat_tree->tree_lock
HALF_LOCKED2 &(sb->s_fs_info)->ext_tree->tree_lock
HALF_LOCKED2 &dentry->d_inode->i_rwsem
HALF_LOCKED2 &dir->i_rwsem
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &target->i_rwsem

net/mptcp/options.c raw_atomic64_cmpxchg() -> arch_atomic64_cmpxchg()

Type Parameter Key Value
PARAM_VALUE 0 v 4096-ptr_max
DATA_SOURCE 0 v $0
DATA_SOURCE 1 old $1
DATA_SOURCE 2 new $2
BIT_INFO 1 old 0x0,0x7fffffffffffffff
BIT_INFO 1 old 0x0,0x7fffffffffffffff
RX_PATH
TASK_NOT_RUNNING
UNITS 2 new unit_byte
HALF_LOCKED2 &sk->sk_lock.slock
HALF_LOCKED2 rcu_read
HALF_LOCKED2 sk

kernel/cgroup/misc.c raw_atomic64_cmpxchg() -> arch_atomic64_cmpxchg()

Type Parameter Key Value
PARAM_VALUE 0 v 4096-ptr_max
PARAM_VALUE 1 old s64min-(-2),0-s64max
PARAM_VALUE 2 new s64min-(-1),1-s64max
CAPPED_DATA 1 old 1
CAPPED_DATA 1 old 1
CAPPED_DATA 2 new 1
CAPPED_DATA 2 new 1
DATA_SOURCE 0 v $0
DATA_SOURCE 1 old $1
DATA_SOURCE 2 new $2
HALF_LOCKED2 &kvm->lock
HALF_LOCKED2 &kvm->slots_lock

net/xdp/xdp_umem.c raw_atomic64_cmpxchg() -> arch_atomic64_cmpxchg()

Type Parameter Key Value
PARAM_VALUE 0 v 4096-ptr_max
PARAM_VALUE 2 new 0-4503599627370495
CAPPED_DATA 2 new 1
CAPPED_DATA 2 new 1
DATA_SOURCE 0 v $0
DATA_SOURCE 1 old $1
DATA_SOURCE 2 new $2
CAPABLE 0 14
RX_PATH
TASK_NOT_RUNNING
USER_DATA 2 new 1-s32max[c]
UNITS 1 old unit_array_size
UNITS 2 new unit_page
LOCK2 &xs->mutex
HALF_LOCKED2 &smc->clcsock_release_lock
TYPE_LOCK (struct xdp_sock)->mutex

drivers/gpu/drm/amd/amdgpu/amdgpu_job.c raw_atomic64_cmpxchg() -> arch_atomic64_cmpxchg()

Type Parameter Key Value
PARAM_VALUE 0 v 4096-ptr_max
PARAM_VALUE 1 old s64min-(-1),1-s64max
PARAM_VALUE 2 new s64min-(-4096),4096-s64max
DATA_SOURCE 0 v $0
DATA_SOURCE 1 old $1
DATA_SOURCE 2 new $2
PREEMPT_ADD
RX_PATH
LOCK2 &rq->lock
HALF_LOCKED2 &hive->hive_lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &tmp_adev->reset_domain->sem
HALF_LOCKED2 global &drm_unplug_srcu
TYPE_LOCK (struct drm_sched_rq)->lock