Defined in 1 files as a function:
Referenced in 1 files:
Smatch caller information:
drivers/hid/uhid.c uhid_char_write() -> uhid_dev_create2()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | uhid | 4096-ptr_max |
| PARAM_VALUE | 0 | uhid->devlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | uhid->devlock.first_waiter | 0,4096-5159360019465732095,5159360019465732097-ptr_max |
| PARAM_VALUE | 0 | uhid->devlock.first_waiter->list.prev->next | 5159360019465732096 |
| PARAM_VALUE | 0 | uhid->devlock.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | uhid->devlock.wait_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | uhid->devlock.wait_lock.owner | (-1) |
| PARAM_VALUE | 0 | uhid->devlock.wait_lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | uhid->input_buf.type | 11 |
| PARAM_VALUE | 0 | uhid->input_buf.u.create.rd_data | 0-u32max |
| PARAM_VALUE | 1 | ev | 4096-ptr_max |
| PARAM_VALUE | 1 | ev->type | 11 |
| PARAM_VALUE | 1 | ev->u.create.rd_data | 0-u32max |
| BUF_SIZE | 0 | uhid | s32min-(-2),1-s32max |
| BUF_SIZE | 0 | uhid | s32min-(-2),1-s32max |
| CAPPED_DATA | 0 | &uhid->devlock | 1 |
| MEM_ZERO | 0 | &uhid->input_buf | |
| MEM_ZERO | 1 | ev | |
| USER_DATA | 0 | uhid->input_buf->u.create.name | 0-255 |
| USER_DATA | 0 | uhid->input_buf->u.create.phys | 0-255 |
| USER_DATA | 0 | uhid->input_buf->u.create.uniq | 0-255 |
| USER_DATA | 0 | uhid->input_buf.u.create.bus | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.create.country | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.create.product | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.create.rd_size | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.create.vendor | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.create.version | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.create2.bus | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.create2.country | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.create2.product | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.create2.rd_size | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.create2.vendor | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.create2.version | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.feature.id | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.feature.rnum | 0-255 |
| USER_DATA | 0 | uhid->input_buf.u.feature.rtype | 0-255 |
| USER_DATA | 0 | uhid->input_buf.u.feature_answer.err | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.feature_answer.id | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.feature_answer.size | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.get_report.id | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.get_report.rnum | 0-255 |
| USER_DATA | 0 | uhid->input_buf.u.get_report.rtype | 0-255 |
| USER_DATA | 0 | uhid->input_buf.u.get_report_reply.err | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.get_report_reply.id | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.get_report_reply.size | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.input.size | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.input2.size | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.output.rtype | 0-255 |
| USER_DATA | 0 | uhid->input_buf.u.output.size | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.output_ev.code | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.output_ev.type | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.output_ev.value | s32min-s32max |
| USER_DATA | 0 | uhid->input_buf.u.set_report.id | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.set_report.rnum | 0-255 |
| USER_DATA | 0 | uhid->input_buf.u.set_report.rtype | 0-255 |
| USER_DATA | 0 | uhid->input_buf.u.set_report.size | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.set_report_reply.err | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.set_report_reply.id | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.start.dev_flags | 0-u64max |
| USER_DATA | 1 | ev->type | 11 |
| USER_DATA | 1 | ev->u.create.bus | 0 |
| USER_DATA | 1 | ev->u.create.country | 0 |
| USER_DATA | 1 | ev->u.create.product | 0 |
| USER_DATA | 1 | ev->u.create.rd_size | 0 |
| USER_DATA | 1 | ev->u.create.vendor | 0 |
| USER_DATA | 1 | ev->u.create.version | 0 |
| USER_DATA | 1 | ev->u.create2.bus | 0 |
| USER_DATA | 1 | ev->u.create2.country | 0 |
| USER_DATA | 1 | ev->u.create2.product | 0 |
| USER_DATA | 1 | ev->u.create2.rd_size | 0 |
| USER_DATA | 1 | ev->u.create2.vendor | 0 |
| USER_DATA | 1 | ev->u.create2.version | 0 |
| USER_DATA | 1 | ev->u.feature.id | 0 |
| USER_DATA | 1 | ev->u.feature.rnum | 0 |
| USER_DATA | 1 | ev->u.feature.rtype | 0 |
| USER_DATA | 1 | ev->u.feature_answer.err | 0 |
| USER_DATA | 1 | ev->u.feature_answer.id | 0 |
| USER_DATA | 1 | ev->u.feature_answer.size | 0 |
| USER_DATA | 1 | ev->u.get_report.id | 0 |
| USER_DATA | 1 | ev->u.get_report.rnum | 0 |
| USER_DATA | 1 | ev->u.get_report.rtype | 0 |
| USER_DATA | 1 | ev->u.get_report_reply.err | 0 |
| USER_DATA | 1 | ev->u.get_report_reply.id | 0 |
| USER_DATA | 1 | ev->u.get_report_reply.size | 0 |
| USER_DATA | 1 | ev->u.input.size | 0 |
| USER_DATA | 1 | ev->u.input2.size | 0 |
| USER_DATA | 1 | ev->u.output.rtype | 0 |
| USER_DATA | 1 | ev->u.output.size | 0 |
| USER_DATA | 1 | ev->u.output_ev.code | 0 |
| USER_DATA | 1 | ev->u.output_ev.type | 0 |
| USER_DATA | 1 | ev->u.output_ev.value | 0 |
| USER_DATA | 1 | ev->u.set_report.id | 0 |
| USER_DATA | 1 | ev->u.set_report.rnum | 0 |
| USER_DATA | 1 | ev->u.set_report.rtype | 0 |
| USER_DATA | 1 | ev->u.set_report.size | 0 |
| USER_DATA | 1 | ev->u.set_report_reply.err | 0 |
| USER_DATA | 1 | ev->u.set_report_reply.id | 0 |
| USER_DATA | 1 | ev->u.start.dev_flags | 0 |
| LOCK2 | 0 | &uhid->devlock | |
| TYPE_LOCK | (struct uhid_device)->devlock |
drivers/hid/uhid.c uhid_dev_create() -> uhid_dev_create2()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | uhid | 4096-ptr_max |
| PARAM_VALUE | 0 | uhid->devlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | uhid->devlock.first_waiter | 0,4096-ptr_max |
| PARAM_VALUE | 0 | uhid->devlock.first_waiter->list.prev->next | 5159360019465732096 |
| PARAM_VALUE | 0 | uhid->devlock.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | uhid->devlock.wait_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | uhid->devlock.wait_lock.owner | (-1) |
| PARAM_VALUE | 0 | uhid->devlock.wait_lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | uhid->input_buf.type | 0 |
| PARAM_VALUE | 0 | uhid->input_buf.u.create.rd_data | 0-u32max |
| PARAM_VALUE | 1 | ev | 4096-ptr_max |
| PARAM_VALUE | 1 | ev->type | 0 |
| PARAM_VALUE | 1 | ev->u.create.rd_data | 0-u32max |
| PARAM_VALUE | 1 | ev->u.create2.name | 0 |
| PARAM_VALUE | 1 | ev->u.create2.phys | 0 |
| PARAM_VALUE | 1 | ev->u.create2.rd_size | 1-4096 |
| PARAM_VALUE | 1 | ev->u.create2.uniq | 0 |
| BUF_SIZE | 0 | uhid | s32min-(-2),1-s32max |
| BUF_SIZE | 0 | uhid | s32min-(-2),1-s32max |
| CAPPED_DATA | 1 | ev->u.create2.rd_size | 1 |
| DATA_SOURCE | 0 | uhid | $0 |
| DATA_SOURCE | 1 | ev | $1 |
| MEM_ZERO | 0 | &uhid->input_buf | |
| MEM_ZERO | 1 | ev | |
| USER_DATA | 0 | uhid->input_buf->u.create.name | 0-255 |
| USER_DATA | 0 | uhid->input_buf->u.create.phys | 0-255 |
| USER_DATA | 0 | uhid->input_buf->u.create.uniq | 0-255 |
| USER_DATA | 0 | uhid->input_buf.type | 0 |
| USER_DATA | 0 | uhid->input_buf.u.create.bus | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.create.country | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.create.product | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.create.rd_size | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.create.vendor | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.create.version | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.create2.bus | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.create2.country | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.create2.product | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.create2.rd_size | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.create2.vendor | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.create2.version | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.feature.id | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.feature.rnum | 0-255 |
| USER_DATA | 0 | uhid->input_buf.u.feature.rtype | 0-255 |
| USER_DATA | 0 | uhid->input_buf.u.feature_answer.err | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.feature_answer.id | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.feature_answer.size | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.get_report.id | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.get_report.rnum | 0-255 |
| USER_DATA | 0 | uhid->input_buf.u.get_report.rtype | 0-255 |
| USER_DATA | 0 | uhid->input_buf.u.get_report_reply.err | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.get_report_reply.id | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.get_report_reply.size | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.input.size | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.input2.size | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.output.rtype | 0-255 |
| USER_DATA | 0 | uhid->input_buf.u.output.size | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.output_ev.code | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.output_ev.type | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.output_ev.value | s32min-s32max |
| USER_DATA | 0 | uhid->input_buf.u.set_report.id | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.set_report.rnum | 0-255 |
| USER_DATA | 0 | uhid->input_buf.u.set_report.rtype | 0-255 |
| USER_DATA | 0 | uhid->input_buf.u.set_report.size | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.set_report_reply.err | 0-u16max |
| USER_DATA | 0 | uhid->input_buf.u.set_report_reply.id | 0-u32max |
| USER_DATA | 0 | uhid->input_buf.u.start.dev_flags | 0-u64max |
| USER_DATA | 1 | ev->type | 0 |
| USER_DATA | 1 | ev->u.create.bus | 0 |
| USER_DATA | 1 | ev->u.create.country | 0 |
| USER_DATA | 1 | ev->u.create.product | 0 |
| USER_DATA | 1 | ev->u.create.rd_size | 0 |
| USER_DATA | 1 | ev->u.create.vendor | 0 |
| USER_DATA | 1 | ev->u.create.version | 0 |
| USER_DATA | 1 | ev->u.feature.id | 0 |
| USER_DATA | 1 | ev->u.feature.rnum | 0 |
| USER_DATA | 1 | ev->u.feature.rtype | 0 |
| USER_DATA | 1 | ev->u.feature_answer.err | 0 |
| USER_DATA | 1 | ev->u.feature_answer.id | 0 |
| USER_DATA | 1 | ev->u.feature_answer.size | 0 |
| USER_DATA | 1 | ev->u.get_report.id | 0 |
| USER_DATA | 1 | ev->u.get_report.rnum | 0 |
| USER_DATA | 1 | ev->u.get_report.rtype | 0 |
| USER_DATA | 1 | ev->u.get_report_reply.err | 0 |
| USER_DATA | 1 | ev->u.get_report_reply.id | 0 |
| USER_DATA | 1 | ev->u.get_report_reply.size | 0 |
| USER_DATA | 1 | ev->u.input.size | 0 |
| USER_DATA | 1 | ev->u.input2.size | 0 |
| USER_DATA | 1 | ev->u.output.rtype | 0 |
| USER_DATA | 1 | ev->u.output.size | 0 |
| USER_DATA | 1 | ev->u.output_ev.code | 0 |
| USER_DATA | 1 | ev->u.output_ev.type | 0 |
| USER_DATA | 1 | ev->u.output_ev.value | 0 |
| USER_DATA | 1 | ev->u.set_report.id | 0 |
| USER_DATA | 1 | ev->u.set_report.rnum | 0 |
| USER_DATA | 1 | ev->u.set_report.rtype | 0 |
| USER_DATA | 1 | ev->u.set_report.size | 0 |
| USER_DATA | 1 | ev->u.set_report_reply.err | 0 |
| USER_DATA | 1 | ev->u.set_report_reply.id | 0 |
| USER_DATA | 1 | ev->u.start.dev_flags | 0 |
| USER_PTR | 1 | &ev->u.create2.rd_data | |
| LOCK2 | 0 | &uhid->devlock | |
| TYPE_LOCK | (struct uhid_device)->devlock |