Defined in 2 files as a function:

Referenced in 1 files:

Smatch caller information:

fs/eventpoll.c ep_clear_and_put() -> ep_poll_safewake()

Type Parameter Key Value
PARAM_VALUE 0 ep 4096-ptr_max
PARAM_VALUE 1 epi 0
PARAM_VALUE 2 pollflags 0
BUF_SIZE 0 ep (-1),26
BUF_SIZE 0 ep (-1),26
DATA_SOURCE 0 ep $0
PARAM_COMPARE 0 &ep->poll_wait.head != $0->poll_wait.head.next
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/eventpoll.c ep_insert() -> ep_poll_safewake()

Type Parameter Key Value
PARAM_VALUE 0 ep 4096-ptr_max
PARAM_VALUE 0 ep->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ep->mtx.dep_map->name 0-255
PARAM_VALUE 0 ep->mtx.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 ep->mtx.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 ep->mtx.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 ep->mtx.osq.tail.counter 0-s32max
PARAM_VALUE 0 ep->rbr.rb_leftmost 4096-ptr_max
PARAM_VALUE 0 ep->rbr.rb_leftmost->rb_left 0
PARAM_VALUE 0 ep->rbr.rb_leftmost->rb_right 0
PARAM_VALUE 0 ep->rbr.rb_root.rb_node 4096-ptr_max
PARAM_VALUE 0 ep->rdllist.prev 4096-ptr_max
PARAM_VALUE 0 ep->rdllist.prev->next 4096-ptr_max
PARAM_VALUE 0 ep->rdllist.prev->next->next 4096-ptr_max
PARAM_VALUE 0 ep->user 4096-ptr_max
PARAM_VALUE 0 ep->user->epoll_watches.lock.dep_map->name 0-255
PARAM_VALUE 1 epi 0
PARAM_VALUE 2 pollflags 0
BUF_SIZE 0 ep s32min-(-2),1-s32max
BUF_SIZE 0 ep s32min-(-2),1-s32max
DATA_SOURCE 0 ep $1
PARAM_COMPARE 0 &ep->poll_wait.head != $0->poll_wait.head.next
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/eventpoll.c ep_modify() -> ep_poll_safewake()

Type Parameter Key Value
PARAM_VALUE 0 ep 4096-ptr_max
PARAM_VALUE 0 ep->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ep->mtx.dep_map->name 0-255
PARAM_VALUE 0 ep->mtx.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 ep->mtx.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 ep->mtx.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 ep->mtx.osq.tail.counter 0-s32max
PARAM_VALUE 0 ep->rbr.rb_root.rb_node 1-u64max
PARAM_VALUE 0 ep->rdllist.prev 4096-ptr_max
PARAM_VALUE 0 ep->rdllist.prev->next 4096-ptr_max
PARAM_VALUE 0 ep->rdllist.prev->next->next 4096-ptr_max
PARAM_VALUE 1 epi 0
PARAM_VALUE 2 pollflags 0
BUF_SIZE 0 ep s32min-(-2),1-s32max
BUF_SIZE 0 ep s32min-(-2),1-s32max
DATA_SOURCE 0 ep $0
PARAM_COMPARE 0 &ep->poll_wait.head != $0->poll_wait.head.next
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/eventpoll.c ep_poll_callback() -> ep_poll_safewake()

Type Parameter Key Value
PARAM_VALUE 0 ep 4096-ptr_max
PARAM_VALUE 0 ep->lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 epi 4096-ptr_max
PARAM_VALUE 1 epi->ep 4096-ptr_max
PARAM_VALUE 1 epi->ep->lock.rlock.dep_map->name 0-255
PARAM_VALUE 1 epi->event.events 1-u32max
PARAM_VALUE 2 pollflags 0,134217728
DATA_SOURCE 1 epi r ep_item_from_wait
PARAM_COMPARE 0 &ep->poll_wait.head != $0->poll_wait.head.next
BIT_INFO 2 pollflags 0x0,0x8000000
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &sci->sc_wait_request.lock
HALF_LOCKED2 &x->lock
HALF_LOCKED2 flags