Documented in 1 files:

Defined in 1 files as a function:

Referenced in 5 files:

Smatch caller information:

mm/rmap.c __folio_remove_rmap() -> atomic_add_negative()

Type Parameter Key Value
PARAM_VALUE 0 i (-1)
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &folio->private->lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &vma->anon_vma->root->rwsem
HALF_LOCKED2 &vma->vm_private_data->rw_sema
HALF_LOCKED2 global &ksm_thread_mutex
HALF_LOCKED2 ptl
HALF_LOCKED2 rcu_read
HALF_LOCKED2 vmf->ptl

mm/rmap.c __folio_remove_rmap() -> atomic_add_negative()

Type Parameter Key Value
PARAM_VALUE 0 i (-1)
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 ptl

mm/kasan/kasan_test_c.c kasan_atomics_helper() -> atomic_add_negative()

Type Parameter Key Value
PARAM_VALUE 0 i 42
PARAM_VALUE 1 v 4096-ptr_max
DATA_SOURCE 1 v $1
NOCHECK_CALL

drivers/infiniband/core/cm.c cm_process_work() -> atomic_add_negative()

Type Parameter Key Value
PARAM_VALUE 0 i (-1)
PARAM_VALUE 1 v 4096-ptr_max
HALF_LOCKED2 &pool->lock

drivers/infiniband/core/cm.c cm_process_work() -> atomic_add_negative()

Type Parameter Key Value
PARAM_VALUE 0 i (-1)
PARAM_VALUE 1 v 4096-ptr_max
HALF_LOCKED2 &pool->lock

drivers/accel/habanalabs/common/hw_queue.c ext_queue_sanity_checks() -> atomic_add_negative()

Type Parameter Key Value
PARAM_VALUE 0 i (-65535)-(-1)
PARAM_VALUE 1 v 4096-ptr_max
BUF_SIZE 1 v 4
PREEMPT_ADD
RX_PATH
LOCK2 &hdev->asic_specific->hw_queues_lock
LOCK2 &hdev->asic_specific->hw_queues_lock