Documented in 1 files:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

mm/memcontrol.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

lib/atomic64_test.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 0 v 4852880703011659776
PARAM_VALUE 0 v->counter s64min,(-6151051535892492275),(-1)-0,1229782938533634594
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u (-6151051535892492275),(-2401053088876082434),0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
HARD_MAX 0 v->counter 1229782938533634594
HARD_MAX 2 u 0

drivers/md/md-llbitmap.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

fs/nfs/delegation.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 0 v 1-u64max
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
PREEMPT_ADD
LOCK2 &delegation->lock
LOCK2 rcu_read
TYPE_LOCK (struct nfs_delegation)->lock

mm/page-writeback.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &inode->i_rwsem

net/core/devmem.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

drivers/md/md.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &md->io_barrier

mm/swapfile.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

block/blk-mq.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/backing-dev.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &m->lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &cgwb_lock
HALF_LOCKED2 irq

fs/aio.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
LOCK2 rcu_read

kernel/bpf/syscall.c atomic64_fetch_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &seq->lock
HALF_LOCKED2 bh

mm/zswap.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 bh
HALF_LOCKED2 global &zswap_pools_lock

fs/nfsd/nfssvc.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

drivers/pci/p2pdma.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &of->mutex

mm/kasan/kasan_test_c.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 0 v 4096-ptr_max
PARAM_VALUE 1 a 1,21
PARAM_VALUE 2 u 0,42
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
HARD_MAX 1 a 21
HARD_MAX 2 u 42

drivers/nvme/target/core.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &pool->lock

drivers/net/netdevsim/fib.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 0 v 4096-ptr_max
PARAM_VALUE 1 a 1
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
RX_PATH
HALF_LOCKED2 &data->nh_lock

fs/fs-writeback.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &bdi->wb_switch_rwsem
HALF_LOCKED2 &sb->s_umount

fs/nfs/flexfilelayout/flexfilelayoutdev.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 0 v 1-u64max
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

drivers/dma/idxd/submit.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &pool->lock

drivers/target/target_core_alua.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &tg_pt_gp->tg_pt_gp_lock
LOCK2 &tg_pt_gp->tg_pt_gp_transition_mutex
LOCK2 rcu_read
HALF_LOCKED2 &buffer->mutex
HALF_LOCKED2 &frag->frag_sem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct t10_alua_tg_pt_gp)->tg_pt_gp_lock
TYPE_LOCK (struct t10_alua_tg_pt_gp)->tg_pt_gp_transition_mutex

drivers/nvme/target/pr.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &pool->lock

block/blk-core.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

kernel/cgroup/cgroup.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

kernel/cgroup/cgroup-v1.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
NS_CAPABLE 0 21
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &fc->uapi_mutex

drivers/target/target_core_xcopy.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
LOCK2 rcu_read
HALF_LOCKED2 &pool->lock

kernel/acct.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 0 v 4096-ptr_max
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 global &system_transition_mutex

kernel/events/core.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 0 v 4096-ptr_max
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &parent_ctx->mutex
HALF_LOCKED2 &parent_event->child_mutex
HALF_LOCKED2 &pmu->events_lock
HALF_LOCKED2 _T->lock
HALF_LOCKED2 rcu_read

block/blk-cgroup.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

drivers/target/target_core_transport.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/memremap.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 0-4294967295
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &mm->mmap_lock

drivers/target/target_core_device.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

block/blk-iolatency.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

kernel/cred.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 0 v 1-u64max
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &m->lock
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 global &cgroup_mutex
HALF_LOCKED2 global &oom_lock
HALF_LOCKED2 global &rdtgroup_mutex

drivers/block/nbd.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
LOCK2 &pool->lock
LOCK2 rcu_read

drivers/target/target_core_pr.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dev->se_port_lock
LOCK2 rcu_read
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct se_device)->se_port_lock

block/blk-mq-tag.c raw_atomic64_add_unless() -> raw_atomic64_fetch_add_unless()

Type Parameter Key Value
PARAM_VALUE 1 a 1
PARAM_VALUE 2 u 0
DATA_SOURCE 0 v $0
DATA_SOURCE 1 a $1
DATA_SOURCE 2 u $2
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &md->suspend_lock
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pool->lock