Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

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

Type Parameter Key Value
PARAM_VALUE 0 ctx 4096-ptr_max
PARAM_VALUE 0 ctx->event_wqh.lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ctx->fault_pending_wqh.lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ctx->fd_wqh.lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 ewq 4096-ptr_max
PARAM_VALUE 1 ewq->msg.event 0-18,20-255
BUF_SIZE 0 ctx s32min-(-2),1-s32max
BUF_SIZE 0 ctx s32min-(-2),1-s32max
DATA_SOURCE 0 ctx $0
DATA_SOURCE 1 ewq r find_userfault_evt
PARAM_COMPARE 0 &ctx->event_wqh.head != $0->event_wqh.head.next
PARAM_COMPARE 0 &ctx->fault_pending_wqh.head == $0->fault_pending_wqh.head.next
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 irq
LOCK2 0 &ctx->event_wqh.lock
LOCK2 0 &ctx->fd_wqh.lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct wait_queue_head)->lock

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

Type Parameter Key Value
PARAM_VALUE 0 ctx 4096-ptr_max
PARAM_VALUE 0 ctx->event_wqh.lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ctx->fault_pending_wqh.lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ctx->fd_wqh.lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 ewq 4096-ptr_max
PARAM_VALUE 1 ewq->wq.entry.next 4096-ptr_max
PARAM_VALUE 1 ewq->wq.entry.next->prev 4096-ptr_max
PARAM_VALUE 1 ewq->wq.entry.prev 4096-ptr_max
PARAM_VALUE 1 ewq->wq.entry.prev->next 4096-ptr_max
BUF_SIZE 0 ctx s32min-(-2),1-s32max
BUF_SIZE 0 ctx s32min-(-2),1-s32max
DATA_SOURCE 0 ctx $0
PARAM_COMPARE 0 &ctx->fault_pending_wqh.head == $0->fault_pending_wqh.head.next
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 irq
LOCK2 0 &ctx->event_wqh.lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct wait_queue_head)->lock