Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/hid/hid-core.c hid_hw_raw_request() -> __hid_hw_raw_request()

Type Parameter Key Value
PARAM_VALUE 0 hdev->driver_input_lock.first_waiter->up 0-1
PARAM_VALUE 0 hdev->ll_driver->idle 0,4096-ptr_max
PARAM_VALUE 0 hdev->ll_driver->max_buffer_size 0,4096
PARAM_VALUE 0 hdev->ll_driver->may_wakeup 0,4443010138165833728,6534636632079282176
PARAM_VALUE 0 hdev->ll_driver->power 0,4096-ptr_max
PARAM_VALUE 0 hdev->ll_driver->request 0,5063944467320635392,5622718608058388480,7328449251628552192
PARAM_VALUE 0 hdev->ll_driver->start 0,4096-ptr_max
PARAM_VALUE 0 hdev->ll_driver->wait 0,4096-ptr_max
PARAM_VALUE 6 source 0
PARAM_VALUE 7 from_bpf 0
BUF_SIZE 0 hdev s32min-(-1),1-s32max
BUF_SIZE 0 hdev s32min-(-1),1-s32max
BUF_SIZE 0 hdev->bpf_rdesc (-1)-s32max
BUF_SIZE 0 hdev->devres_group_id s32min-(-1),1-s32max
BUF_SIZE 2 buf (-1)-s32max
BUF_SIZE 2 buf (-1)-s32max
DATA_SOURCE 0 hdev $0
DATA_SOURCE 1 reportnum $1
DATA_SOURCE 2 buf $2
DATA_SOURCE 3 len $3
DATA_SOURCE 4 rtype $4
DATA_SOURCE 5 reqtype $5
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 reportnum 0-255
USER_DATA 2 *buf 0-255
USER_DATA 3 len 2-16384[c]
UNITS 0 hdev unit_byte
UNITS 3 len unit_byte
BYTE_COUNT 2 ==buf3 8050
USER_PTR 2 buf
HALF_LOCKED2 &data->led_report_mutex
HALF_LOCKED2 &g15->mutex
HALF_LOCKED2 &haptic->manual_trigger_mutex
HALF_LOCKED2 &hdev->driver_input_lock
HALF_LOCKED2 &hidpp->send_mutex
HALF_LOCKED2 &ldev->lock
HALF_LOCKED2 &led->lock
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 0 &hdev->driver_input_lock
HALF_LOCKED2 0 &hdev->ll_open_lock

drivers/hid/hidraw.c hidraw_get_report() -> __hid_hw_raw_request()

Type Parameter Key Value
PARAM_VALUE 0 hdev 4096-ptr_max
PARAM_VALUE 0 hdev->ll_driver 4096-ptr_max
PARAM_VALUE 0 hdev->ll_driver->raw_request 4096-ptr_max
PARAM_VALUE 2 buf 4096-ptr_max
PARAM_VALUE 3 len 2-8
PARAM_VALUE 4 rtype 0-2
PARAM_VALUE 5 reqtype 1
PARAM_VALUE 6 source 4096-18446744073709547520
PARAM_VALUE 7 from_bpf 0
BUF_SIZE 2 buf 2-8
BUF_SIZE 2 buf 2-8
DATA_SOURCE 2 buf r _kmalloc_noprof
DATA_SOURCE 3 len $2
DATA_SOURCE 4 rtype $3
DATA_SOURCE 6 source $0
HARD_MAX 4 rtype 2
USER_DATA 1 reportnum 0-255
USER_DATA 3 len 2-8[c]
BYTE_COUNT 2 ==buf3 8050
LOCK2 global &minors_rwsem

drivers/hid/hidraw.c hidraw_send_report() -> __hid_hw_raw_request()

Type Parameter Key Value
PARAM_VALUE 0 hdev->ll_driver->output_report 0,413141862939832320,1442834317192245248,2221293637157601280,3717343193451302912,7818562613356847104
PARAM_VALUE 2 buf 4096-ptr_max
PARAM_VALUE 3 len 2-16384
PARAM_VALUE 4 rtype 0-2
PARAM_VALUE 5 reqtype 9
PARAM_VALUE 6 source 4096-18446744073709547520
PARAM_VALUE 7 from_bpf 0
BUF_SIZE 2 buf 2-16384
BUF_SIZE 2 buf 2-16384
CAPPED_DATA 3 len 1
CAPPED_DATA 3 len 1
DATA_SOURCE 2 buf r memdup_user
DATA_SOURCE 3 len $2
DATA_SOURCE 4 rtype $3
DATA_SOURCE 6 source $0
HARD_MAX 4 rtype 2
USER_DATA 1 reportnum 0-255
USER_DATA 2 *buf 0-255
USER_DATA 3 len 2-16384[c]
BYTE_COUNT 2 ==buf3 8050
USER_PTR 2 buf
LOCK2 global &minors_rwsem

drivers/hid/bpf/hid_bpf_dispatch.c hid_bpf_hw_request() -> (struct hid_ops)->hid_hw_raw_request()

Type Parameter Key Value
PARAM_VALUE 2 buf 4096-ptr_max
PARAM_VALUE 3 len 0-u32max
PARAM_VALUE 4 rtype 0-2
PARAM_VALUE 5 reqtype 1-3,9-11
PARAM_VALUE 6 source 4096-18446744073709547520
PARAM_VALUE 7 from_bpf 1
BUF_SIZE 2 buf 0-s32max
BUF_SIZE 2 buf 0-s32max
CAPPED_DATA 3 len 1
CAPPED_DATA 3 len 1
DATA_SOURCE 2 buf r kmemdup_noprof
DATA_SOURCE 4 rtype $3
DATA_SOURCE 5 reqtype $4
DATA_SOURCE 6 source $0