Documented in 1 files:

Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

mm/userfaultfd.c dup_userfaultfd() -> userfaultfd_ctx_get()

Type Parameter Key Value
PARAM_VALUE 0 ctx 4096-ptr_max
CAPPED_DATA 0 ctx 1
BIT_INFO 0 ctx->features 0x2,0xffffffff
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 ctx unit_byte
LOCK2 &mm->mmap_lock
LOCK2 &oldmm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/userfaultfd.c handle_userfault() -> userfaultfd_ctx_get()

Type Parameter Key Value
PARAM_VALUE 0 ctx 4096-ptr_max
PARAM_VALUE 0 ctx->released 0
BIT_INFO 0 ctx->features 0x0,0xffffff7f
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 ctx unit_byte

mm/userfaultfd.c mremap_userfaultfd_prep() -> userfaultfd_ctx_get()

Type Parameter Key Value
PARAM_VALUE 0 ctx 4096-ptr_max
BIT_INFO 0 ctx->features 0x4,0xffffffff
NOCHECK_CALL
UNITS 0 ctx unit_byte
LOCK2 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/userfaultfd.c userfaultfd_ctx_read() -> userfaultfd_ctx_get()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &ctx->event_wqh.lock
LOCK2 &ctx->fd_wqh.lock
LOCK2 irq
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct wait_queue_head)->lock

mm/userfaultfd.c userfaultfd_remove() -> userfaultfd_ctx_get()

Type Parameter Key Value
PARAM_VALUE 0 ctx 4096-ptr_max
BIT_INFO 0 ctx->features 0x8,0xffffffff
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 ctx unit_byte
HALF_LOCKED2 &madv_behavior->mm->mmap_lock

mm/userfaultfd.c userfaultfd_unmap_prep() -> userfaultfd_ctx_get()

Type Parameter Key Value
PARAM_VALUE 0 ctx 4096-ptr_max
CAPPED_DATA 0 ctx 1
BIT_INFO 0 ctx->features 0x40,0xffffffffffffffff
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 ctx unit_byte
HALF_LOCKED2 &mm->mmap_lock