Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

drivers/hid/uhid.c __uhid_report_queue_and_wait() -> uhid_queue()

Type Parameter Key Value
PARAM_VALUE 0 uhid 4096-ptr_max
PARAM_VALUE 0 uhid->report_lock.dep_map->name 0-255
PARAM_VALUE 0 uhid->report_lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 uhid->report_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 uhid->report_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 uhid->report_lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 uhid->report_lock.wait_lock.owner (-1)
PARAM_VALUE 0 uhid->report_lock.wait_lock.owner_cpu u32max
PARAM_VALUE 0 uhid->report_running 1
PARAM_VALUE 0 uhid->report_type 10,14
PARAM_VALUE 0 uhid->running 1
PARAM_VALUE 1 ev 4096-ptr_max
PARAM_VALUE 1 ev->type 9,13
BUF_SIZE 0 uhid s32min-(-2),1-s32max
BUF_SIZE 0 uhid s32min-(-2),1-s32max
BUF_SIZE 1 ev 4380
DATA_SOURCE 0 uhid $0
DATA_SOURCE 1 ev $1
FUZZY_MAX 0 uhid->report_type 14
NOSPEC 1 ev->u.set_report.size
HARD_MAX 0 uhid->report_type 14
HARD_MAX 1 ev->type 13
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 ev->u.get_report.rnum 0-255
USER_DATA 1 ev->u.set_report.rnum 0-255
USER_DATA 1 ev->u.set_report.size 2-4096[c]
USER_PTR 1 ev->u.set_report.data
LOCK2 flags
LOCK2 0 &uhid->qlock
LOCK2 0 &uhid->report_lock
HALF_LOCKED2 &hid->driver_input_lock
HALF_LOCKED2 &hid->ll_open_lock
HALF_LOCKED2 global &minors_rwsem
TYPE_LOCK (struct uhid_device)->qlock
TYPE_LOCK (struct uhid_device)->report_lock

drivers/hid/uhid.c uhid_hid_output_raw() -> uhid_queue()

Type Parameter Key Value
PARAM_VALUE 1 ev 4096-ptr_max
PARAM_VALUE 1 ev->type 6
PARAM_VALUE 1 ev->u.output.rtype 0-1
PARAM_VALUE 1 ev->u.output.size 1-4096
BUF_SIZE 0 uhid s32min-(-2),1-s32max
BUF_SIZE 0 uhid s32min-(-2),1-s32max
BUF_SIZE 1 ev 4380
CAPPED_DATA 1 ev->u.output.size 1
DATA_SOURCE 1 ev r _kzalloc_noprof
NOSPEC 1 ev->u.output.size
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 ev->u.output.size 2-4096[c]
USER_DATA 1 *ev->u.output.data 0-255
USER_PTR 1 ev->u.output.data
LOCK2 flags
LOCK2 0 &uhid->qlock
HALF_LOCKED2 &hid->driver_input_lock
HALF_LOCKED2 global &minors_rwsem
TYPE_LOCK (struct uhid_device)->qlock

drivers/hid/uhid.c uhid_hid_start() -> uhid_queue()

Type Parameter Key Value
PARAM_VALUE 1 ev 4096-ptr_max
PARAM_VALUE 1 ev->type 2
BUF_SIZE 0 uhid s32min-(-2),1-s32max
BUF_SIZE 0 uhid s32min-(-2),1-s32max
BUF_SIZE 1 ev 4380
DATA_SOURCE 1 ev r _kzalloc_noprof
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &uhid->qlock
HALF_LOCKED2 &hid->driver_input_lock
TYPE_LOCK (struct uhid_device)->qlock

drivers/hid/uhid.c uhid_queue_event() -> uhid_queue()

Type Parameter Key Value
PARAM_VALUE 1 ev 4096-ptr_max
PARAM_VALUE 1 ev->type 3-5
BUF_SIZE 0 uhid s32min-(-2),1-s32max
BUF_SIZE 0 uhid s32min-(-2),1-s32max
BUF_SIZE 1 ev 4380
DATA_SOURCE 0 uhid $0
DATA_SOURCE 1 ev r _kzalloc_noprof
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &uhid->qlock
HALF_LOCKED2 &hid->ll_open_lock
TYPE_LOCK (struct uhid_device)->qlock