Documented in 1 files:
Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 6 files:
- block/blk-map.c, line 682
- drivers/block/ublk_drv.c, line 670
- drivers/block/virtio_blk.c
- drivers/nvme/host/core.c, line 1200
- drivers/scsi/scsi_ioctl.c, line 607
- drivers/scsi/scsi_lib.c, line 318
Smatch caller information:
drivers/scsi/scsi_lib.c scsi_execute_cmd() -> blk_rq_map_kern()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | rq | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->__data_len | 0 |
| PARAM_VALUE | 0 | rq->__sector | u64max |
| PARAM_VALUE | 0 | rq->bio | 0 |
| PARAM_VALUE | 0 | rq->biotail | 0 |
| PARAM_VALUE | 0 | rq->mq_hctx->type | 0-2 |
| PARAM_VALUE | 0 | rq->phys_gap_bit | 0 |
| PARAM_VALUE | 0 | rq->q | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->queuelist.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->queuelist.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->queuelist.prev->prev | 4096-ptr_max |
| PARAM_VALUE | 2 | len | 1-u32max |
| PARAM_VALUE | 3 | gfp_mask | 3072 |
| BUF_SIZE | 1 | kbuf | s32min-s32max |
| DATA_SOURCE | 0 | rq | r scsi_alloc_request |
| DATA_SOURCE | 1 | kbuf | $3 |
| DATA_SOURCE | 2 | len | $4 |
| FUZZY_MAX | 2 | len | 4096 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | rq->biotail->bi_iter.bi_size | 0-1000000000 |
| USER_DATA | 0 | rq->biotail->bi_max_vecs | 0-4,16,64,128,256[c] |
| USER_DATA | 2 | len | 9-176400[c] |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->async_depth | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.discard_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.max_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.max_hw_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.max_open_zones | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.zone_write_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->nr_hw_queues | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->nr_requests | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->q_usage_counter.percpu_count_ptr | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->async_depth | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.discard_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.max_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.max_hw_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.max_open_zones | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.zone_write_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->nr_hw_queues | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->nr_requests | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->q_usage_counter.percpu_count_ptr | |
| UNITS | 2 | len | unit_byte |
| HALF_LOCKED2 | &(&starget->starget_data)->dv_mutex | ||
| HALF_LOCKED2 | &ch->lock | ||
| HALF_LOCKED2 | &dev->dev_lock | ||
| HALF_LOCKED2 | &of->mutex | ||
| HALF_LOCKED2 | &sdkp->disk->queue->limits_lock | ||
| HALF_LOCKED2 | &shost->scan_mutex | ||
| HALF_LOCKED2 | global &system_transition_mutex | ||
| HALF_LOCKED2 | sh->host_lock |
drivers/nvme/host/core.c __nvme_submit_sync_cmd() -> blk_rq_map_kern()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | rq | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->__data_len | 0 |
| PARAM_VALUE | 0 | rq->__sector | u64max |
| PARAM_VALUE | 0 | rq->bio | 0 |
| PARAM_VALUE | 0 | rq->biotail | 0 |
| PARAM_VALUE | 0 | rq->crypt_ctx | 0 |
| PARAM_VALUE | 0 | rq->crypt_keyslot | 0 |
| PARAM_VALUE | 0 | rq->deadline | 0 |
| PARAM_VALUE | 0 | rq->end_io | 0 |
| PARAM_VALUE | 0 | rq->end_io_data | 0 |
| PARAM_VALUE | 0 | rq->io_start_time_ns | 0 |
| PARAM_VALUE | 0 | rq->mq_hctx | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->nr_integrity_segments | 0 |
| PARAM_VALUE | 0 | rq->nr_phys_segments | 0 |
| PARAM_VALUE | 0 | rq->part | 0 |
| PARAM_VALUE | 0 | rq->phys_gap_bit | 0 |
| PARAM_VALUE | 0 | rq->q | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->queuelist.next | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->queuelist.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->queuelist.prev | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->queuelist.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->queuelist.prev->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->ref.counter | 1 |
| PARAM_VALUE | 0 | rq->rq_flags | 0,8-u32max |
| PARAM_VALUE | 0 | rq->stats_sectors | 0 |
| PARAM_VALUE | 0 | rq->timeout | 0 |
| PARAM_VALUE | 1 | kbuf | 1-u64max |
| PARAM_VALUE | 2 | len | 1-u32max |
| PARAM_VALUE | 3 | gfp_mask | 3264 |
| BUF_SIZE | 1 | kbuf | (-1)-s32max |
| BUF_SIZE | 1 | kbuf | (-1)-s32max |
| CAPPED_DATA | 0 | rq->q | 1 |
| DATA_SOURCE | 1 | kbuf | $3 |
| DATA_SOURCE | 2 | len | $4 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 2 | len | 128-268431359[c] |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->async_depth | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.discard_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.max_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.max_hw_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.max_open_zones | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.zone_write_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->nr_hw_queues | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->nr_requests | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->q_usage_counter.percpu_count_ptr | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->async_depth | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.discard_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.max_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.max_hw_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.max_open_zones | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.zone_write_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->nr_hw_queues | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->nr_requests | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->q_usage_counter.percpu_count_ptr | |
| UNITS | 2 | len | unit_byte |
| BYTE_COUNT | 1 | ==kbuf2 | 8050 |
| HALF_LOCKED2 | &dev->dev_lock |
drivers/block/ublk_drv.c ublk_report_zones() -> blk_rq_map_kern()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | rq | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->__data_len | 0 |
| PARAM_VALUE | 0 | rq->__sector | u64max |
| PARAM_VALUE | 0 | rq->bio | 0 |
| PARAM_VALUE | 0 | rq->biotail | 0 |
| PARAM_VALUE | 0 | rq->mq_hctx->type | 0-2 |
| PARAM_VALUE | 0 | rq->phys_gap_bit | 0 |
| PARAM_VALUE | 0 | rq->q | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->queuelist.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->queuelist.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->queuelist.prev->prev | 4096-ptr_max |
| PARAM_VALUE | 1 | kbuf | 16,4096-ptr_max |
| PARAM_VALUE | 2 | len | 64-4294966784 |
| PARAM_VALUE | 3 | gfp_mask | 3264 |
| BUF_SIZE | 1 | kbuf | 64-s32max |
| CAPPED_DATA | 2 | len | 1 |
| DATA_SOURCE | 0 | rq | r blk_mq_alloc_request |
| DATA_SOURCE | 1 | kbuf | r ublk_alloc_report_buffer |
| NOSPEC | 2 | len | |
| NOSPEC | 2 | len | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 2 | len | 64-s32max[c] |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->async_depth | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.discard_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.max_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.max_hw_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.max_open_zones | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.zone_write_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->nr_hw_queues | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->nr_requests | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->q_usage_counter.percpu_count_ptr | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->async_depth | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.discard_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.max_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.max_hw_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.max_open_zones | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.zone_write_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->nr_hw_queues | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->nr_requests | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->q_usage_counter.percpu_count_ptr | |
| HALF_LOCKED2 | &pool->lock |
drivers/scsi/scsi_ioctl.c sg_scsi_ioctl() -> blk_rq_map_kern()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | rq | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->__data_len | 0 |
| PARAM_VALUE | 0 | rq->__sector | u64max |
| PARAM_VALUE | 0 | rq->bio | 0 |
| PARAM_VALUE | 0 | rq->biotail | 0 |
| PARAM_VALUE | 0 | rq->mq_hctx->type | 0-2 |
| PARAM_VALUE | 0 | rq->phys_gap_bit | 0 |
| PARAM_VALUE | 0 | rq->q | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->queuelist.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->queuelist.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->queuelist.prev->prev | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->timeout | 15000,75000,1800000 |
| PARAM_VALUE | 1 | kbuf | 4096-ptr_max |
| PARAM_VALUE | 2 | len | 1-4096 |
| PARAM_VALUE | 3 | gfp_mask | 3072 |
| BUF_SIZE | 1 | kbuf | 1-4096 |
| DATA_SOURCE | 0 | rq | r scsi_alloc_request |
| DATA_SOURCE | 1 | kbuf | r _kzalloc_noprof |
| FUZZY_MAX | 0 | rq->timeout | 1800000 |
| BIT_INFO | 0 | rq->timeout | 0x2000,0x1b7ff8 |
| HARD_MAX | 0 | rq->timeout | 1800000 |
| USER_DATA | 2 | len | 1-4096 |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->async_depth | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.discard_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.max_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.max_hw_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.max_open_zones | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.zone_write_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->nr_hw_queues | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->nr_requests | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->q_usage_counter.percpu_count_ptr | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->async_depth | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.discard_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.max_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.max_hw_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.max_open_zones | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.zone_write_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->nr_hw_queues | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->nr_requests | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->q_usage_counter.percpu_count_ptr | |
| UNITS | 2 | len | unit_byte |
| BYTE_COUNT | 1 | ==kbuf2 | 8050 |
| USER_PTR | 1 | kbuf | |
| HALF_LOCKED2 | &cd->lock |
drivers/block/virtio_blk.c virtblk_get_id() -> blk_rq_map_kern()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | rq | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->__data_len | 0 |
| PARAM_VALUE | 0 | rq->__sector | u64max |
| PARAM_VALUE | 0 | rq->bio | 0 |
| PARAM_VALUE | 0 | rq->biotail | 0 |
| PARAM_VALUE | 0 | rq->mq_hctx->type | 0-2 |
| PARAM_VALUE | 0 | rq->phys_gap_bit | 0 |
| PARAM_VALUE | 0 | rq->q | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->queuelist.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->queuelist.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->queuelist.prev->prev | 4096-ptr_max |
| PARAM_VALUE | 1 | kbuf | 4096-ptr_max |
| PARAM_VALUE | 2 | len | 20 |
| PARAM_VALUE | 3 | gfp_mask | 3264 |
| DATA_SOURCE | 0 | rq | r blk_mq_alloc_request |
| DATA_SOURCE | 1 | kbuf | $1 |
| TERMINATED | 1 | kbuf | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->async_depth | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.discard_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.max_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.max_hw_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.max_open_zones | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.zone_write_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->nr_hw_queues | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->nr_requests | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->q_usage_counter.percpu_count_ptr | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->async_depth | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.discard_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.max_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.max_hw_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.max_open_zones | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.zone_write_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->nr_hw_queues | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->nr_requests | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->q_usage_counter.percpu_count_ptr | |
| LOCK2 | &of->mutex | ||
| HALF_LOCKED2 | &of->prealloc_mutex | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct kernfs_open_file)->mutex |
drivers/block/virtio_blk.c virtblk_submit_zone_report() -> blk_rq_map_kern()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | rq | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->__data_len | 0 |
| PARAM_VALUE | 0 | rq->__sector | u64max |
| PARAM_VALUE | 0 | rq->bio | 0 |
| PARAM_VALUE | 0 | rq->biotail | 0 |
| PARAM_VALUE | 0 | rq->mq_hctx->type | 0-2 |
| PARAM_VALUE | 0 | rq->phys_gap_bit | 0 |
| PARAM_VALUE | 0 | rq->q | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->queuelist.next->next | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->queuelist.prev->next | 4096-ptr_max |
| PARAM_VALUE | 0 | rq->queuelist.prev->prev | 4096-ptr_max |
| PARAM_VALUE | 1 | kbuf | 1-u64max |
| PARAM_VALUE | 2 | len | 64-268431360 |
| PARAM_VALUE | 3 | gfp_mask | 3264 |
| BUF_SIZE | 1 | kbuf | 64-268431360 |
| DATA_SOURCE | 0 | rq | r blk_mq_alloc_request |
| DATA_SOURCE | 1 | kbuf | $1 |
| DATA_SOURCE | 2 | len | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 2 | len | 64-268431359[c] |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->async_depth | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.discard_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.max_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.max_hw_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.max_open_zones | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->limits.zone_write_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->nr_hw_queues | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->nr_requests | |
| NO_OVERFLOW_SIMPLE | 0 | rq->elv.icq->q->q_usage_counter.percpu_count_ptr | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->async_depth | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.discard_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.max_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.max_hw_discard_sectors | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.max_open_zones | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->limits.zone_write_granularity | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->nr_hw_queues | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->nr_requests | |
| NO_OVERFLOW_SIMPLE | 0 | rq->q->q_usage_counter.percpu_count_ptr | |
| UNITS | 2 | len | unit_byte |
| LOCK2 | &vblk->vdev_mutex | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct virtio_blk)->vdev_mutex |