Defined in 2 files as a function:
- drivers/comedi/comedi_fops.c, line 2834 (as a function)
- drivers/comedi/proc.c, line 21 (as a function)
Referenced in 2 files:
Smatch caller information:
fs/read_write.c vfs_read() -> (struct file_operations)->read()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | m | 4096-ptr_max |
| PARAM_VALUE | 0 | m->f_op | 4096-ptr_max |
| PARAM_VALUE | 0 | m->f_op->read | 1-u64max |
| PARAM_VALUE | 2 | nbytes | 0-1000000000,2147479552 |
| PARAM_VALUE | 3 | *offset | 0-1000000000 |
| BUF_SIZE | 3 | offset | (-1),8 |
| BUF_SIZE | 3 | offset | (-1),8 |
| CAPPED_DATA | 1 | v | 1 |
| DATA_SOURCE | 0 | m | $0 |
| DATA_SOURCE | 1 | v | $1 |
| DATA_SOURCE | 2 | nbytes | $2 [m] |
| DATA_SOURCE | 3 | offset | $3 |
| FUZZY_MAX | 2 | nbytes | 2147479552 |
| CONTAINER | 0 | -24-80+0 | $(-1) |
| BIT_INFO | 0 | m->f_mode | 0x20001,0xffffffff |
| USER_DATA | 1 | v | 0-u64max[c] |
| USER_DATA | 2 | nbytes | 0-1000000000 |
| USER_DATA | 3 | *offset | 0-1000000000 |
| USER_PTR | 3 | offset |
kernel/bpf/bpf_iter.c bpf_seq_read() -> (struct seq_operations)->show()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | m | 4096-ptr_max |
| PARAM_VALUE | 0 | m->buf | 1-u64max |
| PARAM_VALUE | 0 | m->count | 0 |
| PARAM_VALUE | 0 | m->from | 0 |
| PARAM_VALUE | 0 | m->lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | m->lock.first_waiter | 0,4096-ptr_max |
| PARAM_VALUE | 0 | m->lock.first_waiter->list.prev->next | 5159360019465732096 |
| PARAM_VALUE | 0 | m->lock.first_waiter->task->blocked_on | 0 |
| PARAM_VALUE | 0 | m->lock.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | m->lock.wait_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | m->lock.wait_lock.owner | (-1) |
| PARAM_VALUE | 0 | m->lock.wait_lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | m->op | 4096-ptr_max |
| PARAM_VALUE | 1 | v | 1-ptr_max |
| BUF_SIZE | 0 | m | s32min-(-2),1-s32max |
| BUF_SIZE | 0 | m | s32min-(-2),1-s32max |
| BUF_SIZE | 0 | m->buf | 32768,u64max |
| CAPPED_DATA | 0 | &m->lock | 1 |
| CONTAINER | 0 | -24-208+0 | $(-1) |
| LOCK2 | 0 | &m->lock | |
| TYPE_LOCK | (struct seq_file)->lock |
kernel/bpf/bpf_iter.c bpf_seq_read() -> (struct seq_operations)->show()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | m | 4096-ptr_max |
| PARAM_VALUE | 0 | m->buf | 1-u64max |
| PARAM_VALUE | 0 | m->count | 0 |
| PARAM_VALUE | 0 | m->from | 0 |
| PARAM_VALUE | 0 | m->lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | m->lock.first_waiter | 0,4096-ptr_max |
| PARAM_VALUE | 0 | m->lock.first_waiter->list.prev->next | 5159360019465732096 |
| PARAM_VALUE | 0 | m->lock.first_waiter->task->blocked_on | 0 |
| PARAM_VALUE | 0 | m->lock.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | m->lock.wait_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | m->lock.wait_lock.owner | (-1) |
| PARAM_VALUE | 0 | m->lock.wait_lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | m->op | 4096-ptr_max |
| PARAM_VALUE | 1 | v | 1-ptr_max |
| BUF_SIZE | 0 | m | s32min-(-2),1-s32max |
| BUF_SIZE | 0 | m | s32min-(-2),1-s32max |
| BUF_SIZE | 0 | m->buf | 32768,u64max |
| CAPPED_DATA | 0 | &m->lock | 1 |
| CONTAINER | 0 | -24-208+0 | $(-1) |
| PARAM_COMPARE | 0 | m->count | <= $0->size |
| LOCK2 | 0 | &m->lock | |
| TYPE_LOCK | (struct seq_file)->lock |
fs/seq_file.c seq_read_iter() -> (struct seq_operations)->show()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | m | 4096-ptr_max |
| PARAM_VALUE | 0 | m->buf | 1-u64max |
| PARAM_VALUE | 0 | m->count | 0 |
| PARAM_VALUE | 0 | m->from | 0 |
| PARAM_VALUE | 0 | m->lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | m->lock.first_waiter | 0,4096-ptr_max |
| PARAM_VALUE | 0 | m->lock.first_waiter->list.prev->next | 5159360019465732096 |
| PARAM_VALUE | 0 | m->lock.first_waiter->task->blocked_on | 0 |
| PARAM_VALUE | 0 | m->lock.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | m->lock.wait_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | m->lock.wait_lock.owner | (-1) |
| PARAM_VALUE | 0 | m->lock.wait_lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | m->op | 4096-ptr_max |
| PARAM_VALUE | 1 | v | 1-ptr_max |
| BUF_SIZE | 0 | m | s32min-(-2),1-s32max |
| BUF_SIZE | 0 | m | s32min-(-2),1-s32max |
| BUF_SIZE | 0 | m->buf | (-1)-2147479552 |
| CAPPED_DATA | 0 | &m->lock | 1 |
| CONTAINER | 0 | -24-208+0 | $(-1) |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | m->read_pos | 0-13442450941[c] |
| LOCK2 | 0 | &m->lock | |
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct seq_file)->lock |
fs/seq_file.c seq_read_iter() -> (struct seq_operations)->show()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | m | 4096-ptr_max |
| PARAM_VALUE | 0 | m->buf | 1-u64max |
| PARAM_VALUE | 0 | m->count | 0-999999999 |
| PARAM_VALUE | 0 | m->from | 0 |
| PARAM_VALUE | 0 | m->lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | m->lock.first_waiter | 0,4096-ptr_max |
| PARAM_VALUE | 0 | m->lock.first_waiter->list.prev->next | 5159360019465732096 |
| PARAM_VALUE | 0 | m->lock.first_waiter->task->blocked_on | 0 |
| PARAM_VALUE | 0 | m->lock.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | m->lock.wait_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | m->lock.wait_lock.owner | (-1) |
| PARAM_VALUE | 0 | m->lock.wait_lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | m->op | 4096-ptr_max |
| PARAM_VALUE | 1 | v | 1-ptr_max |
| BUF_SIZE | 0 | m | s32min-(-2),1-s32max |
| BUF_SIZE | 0 | m | s32min-(-2),1-s32max |
| BUF_SIZE | 0 | m->buf | (-1)-2147479552 |
| CAPPED_DATA | 0 | m->count | 1 |
| CAPPED_DATA | 0 | &m->lock | 1 |
| CONTAINER | 0 | -24-208+0 | $(-1) |
| PARAM_COMPARE | 0 | m->count | != $0->size |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | m->read_pos | 0-13442450941[c] |
| LOCK2 | 0 | &m->lock | |
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct seq_file)->lock |
fs/seq_file.c traverse() -> (struct seq_operations)->show()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | m | 4096-ptr_max |
| PARAM_VALUE | 0 | m->buf | 1-u64max |
| PARAM_VALUE | 0 | m->count | 0 |
| PARAM_VALUE | 0 | m->from | 0 |
| PARAM_VALUE | 0 | m->index | 0 |
| PARAM_VALUE | 0 | m->lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | m->lock.first_waiter | 0,4096-ptr_max |
| PARAM_VALUE | 0 | m->lock.first_waiter->list.prev->next | 5159360019465732096 |
| PARAM_VALUE | 0 | m->lock.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | m->lock.wait_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | m->lock.wait_lock.owner | (-1) |
| PARAM_VALUE | 0 | m->lock.wait_lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | m->op | 4096-ptr_max |
| PARAM_VALUE | 1 | v | 1-ptr_max |
| BUF_SIZE | 0 | m | s32min-(-2),1-s32max |
| BUF_SIZE | 0 | m | s32min-(-2),1-s32max |
| BUF_SIZE | 0 | m->buf | (-1)-2147479552 |
| DATA_SOURCE | 0 | m | $0 |
| CONTAINER | 0 | -24-208+0 | $(-1) |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | 0 | &m->lock | |
| TYPE_LOCK | (struct seq_file)->lock |