Defined in 1 files as a function:

Referenced in 6 files:

Smatch caller information:

block/blk-mq.c blk_add_rq_to_plug() -> rq_list_add_tail()

Type Parameter Key Value
PARAM_VALUE 1 rq 4096-ptr_max
CAPPED_DATA 1 rq 1
CAPPED_DATA 1 rq->bio 1
CAPPED_DATA 1 rq->biotail 1
CAPPED_DATA 1 rq->q 1
DATA_SOURCE 1 rq $1
STR_LEN 1 rq->end_io_data (-1)
NOSPEC 1 rq->__data_len
NOSPEC 1 rq->__sector
NOSPEC 1 rq->biotail->bi_iter.bi_sector
NOSPEC 1 rq->biotail->bi_iter.bi_size
NOSPEC 1 rq->biotail->bi_next->bi_iter.bi_sector
NOSPEC 1 rq->biotail->bi_next->bi_iter.bi_size
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 1 rq->__data_len 0-u32max[c]
HOST_DATA 1 rq->__sector 0-u64max
HOST_DATA 1 rq->biotail->bi_iter.bi_sector 0-u64max
HOST_DATA 1 rq->biotail->bi_iter.bi_size 0-u32max[c]
HOST_DATA 1 rq->biotail->bi_max_vecs 0-u16max[c]
HOST_DATA 1 rq->biotail->bi_next->bi_iter.bi_sector 0-u64max
HOST_DATA 1 rq->biotail->bi_next->bi_iter.bi_size 0-u32max[c]
HOST_DATA 1 rq->biotail->bi_next->bi_max_vecs 0-4,16,64,128,256[c]
USER_DATA 1 rq->__data_len 0-u32max
USER_DATA 1 rq->__sector 0-u64max
USER_DATA 1 rq->biotail->bi_ioprio 0-u16max
USER_DATA 1 rq->biotail->bi_iter.bi_sector 0-u64max
USER_DATA 1 rq->biotail->bi_iter.bi_size 0-u32max
USER_DATA 1 rq->biotail->bi_max_vecs 0-u16max[c]
USER_DATA 1 rq->biotail->bi_next->bi_ioprio 0-u16max
USER_DATA 1 rq->biotail->bi_next->bi_iter.bi_sector 0-u64max
USER_DATA 1 rq->biotail->bi_next->bi_iter.bi_size 0-u32max
USER_DATA 1 rq->biotail->bi_next->bi_max_vecs 0-u16max[c]
NO_OVERFLOW_SIMPLE 1 rq->bio->bi_iter.bi_sector
NO_OVERFLOW_SIMPLE 1 rq->bio->bi_max_vecs
NO_OVERFLOW_SIMPLE 1 rq->elv.icq->q->async_depth
NO_OVERFLOW_SIMPLE 1 rq->elv.icq->q->limits.discard_granularity
NO_OVERFLOW_SIMPLE 1 rq->elv.icq->q->limits.max_discard_sectors
NO_OVERFLOW_SIMPLE 1 rq->elv.icq->q->limits.max_hw_discard_sectors
NO_OVERFLOW_SIMPLE 1 rq->elv.icq->q->limits.max_open_zones
NO_OVERFLOW_SIMPLE 1 rq->elv.icq->q->limits.physical_block_size
NO_OVERFLOW_SIMPLE 1 rq->elv.icq->q->limits.zone_write_granularity
NO_OVERFLOW_SIMPLE 1 rq->elv.icq->q->nr_hw_queues
NO_OVERFLOW_SIMPLE 1 rq->elv.icq->q->nr_requests
NO_OVERFLOW_SIMPLE 1 rq->elv.icq->q->q_usage_counter.percpu_count_ptr
NO_OVERFLOW_SIMPLE 1 rq->q->async_depth
NO_OVERFLOW_SIMPLE 1 rq->q->limits.discard_granularity
NO_OVERFLOW_SIMPLE 1 rq->q->limits.max_discard_sectors
NO_OVERFLOW_SIMPLE 1 rq->q->limits.max_hw_discard_sectors
NO_OVERFLOW_SIMPLE 1 rq->q->limits.max_open_zones
NO_OVERFLOW_SIMPLE 1 rq->q->limits.zone_write_granularity
NO_OVERFLOW_SIMPLE 1 rq->q->nr_hw_queues
NO_OVERFLOW_SIMPLE 1 rq->q->nr_requests
NO_OVERFLOW_SIMPLE 1 rq->q->q_usage_counter.percpu_count_ptr

block/blk-mq.c blk_mq_dispatch_list() -> rq_list_add_tail()

Type Parameter Key Value
PARAM_VALUE 0 rl 1062787859405033472
PARAM_VALUE 0 rl->head 0,4096-ptr_max
PARAM_VALUE 0 rl->tail 0,4096-ptr_max
PARAM_VALUE 1 rq 4096-ptr_max
PARAM_VALUE 1 rq->rq_next 0
DATA_SOURCE 1 rq r rq_list_pop
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

block/blk-mq.c blk_mq_extract_queue_requests() -> rq_list_add_tail()

Type Parameter Key Value
PARAM_VALUE 0 rl 2337236914035617792
PARAM_VALUE 0 rl->head 0
PARAM_VALUE 0 rl->tail 0
PARAM_VALUE 1 rq 4096-ptr_max
PARAM_VALUE 1 rq->rq_next 0
DATA_SOURCE 1 rq r rq_list_pop
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

block/blk-mq.c blk_mq_extract_queue_requests() -> rq_list_add_tail()

Type Parameter Key Value
PARAM_VALUE 0 rl 2337236914035617792
PARAM_VALUE 0 rl->head 4096-ptr_max
PARAM_VALUE 0 rl->tail 4096-ptr_max
PARAM_VALUE 1 rq 4096-ptr_max
CAPPED_DATA 1 rq->q 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/nvme/host/pci.c blk_mq_add_to_batch() -> rq_list_add_tail()

Type Parameter Key Value
PARAM_VALUE 0 rl 4096-ptr_max
PARAM_VALUE 1 rq 4096-ptr_max
DATA_SOURCE 1 rq $0
BIT_INFO 1 rq->rq_flags 0x0,0xffffffef
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &nvmeq->cq_poll_lock

drivers/nvme/host/pci.c nvme_queue_rqs() -> rq_list_add_tail()

Type Parameter Key Value
PARAM_VALUE 0 rl 7176388596816236544
PARAM_VALUE 0 rl->tail 0,4096-ptr_max
PARAM_VALUE 1 rq 4096-ptr_max
PARAM_VALUE 1 rq->rq_next 0
DATA_SOURCE 1 rq r rq_list_pop
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 __tag_set->srcu
HALF_LOCKED2 rcu_read

drivers/nvme/host/pci.c nvme_queue_rqs() -> rq_list_add_tail()

Type Parameter Key Value
PARAM_VALUE 0 rl 8967826039963750400
PARAM_VALUE 0 rl->head 0,4096-ptr_max
PARAM_VALUE 0 rl->tail 0,4096-ptr_max
PARAM_VALUE 1 rq 4096-ptr_max
PARAM_VALUE 1 rq->rq_next 0
DATA_SOURCE 1 rq r rq_list_pop
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 __tag_set->srcu
HALF_LOCKED2 rcu_read

drivers/block/ublk_drv.c blk_mq_add_to_batch() -> rq_list_add_tail()

Type Parameter Key Value
PARAM_VALUE 0 rl 3359558952113623040
PARAM_VALUE 0 rl->head 0,4096-ptr_max
PARAM_VALUE 1 rq 4096-ptr_max
DATA_SOURCE 1 rq $0
BIT_INFO 1 rq->rq_flags 0x0,0xffffffef
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &ctx->uring_lock

drivers/block/ublk_drv.c ublk_batch_queue_rqs() -> rq_list_add_tail()

Type Parameter Key Value
PARAM_VALUE 0 rl 971211092201979904
PARAM_VALUE 0 rl->head 0,4096-ptr_max
PARAM_VALUE 0 rl->tail 0,4096-ptr_max
PARAM_VALUE 1 rq 4096-ptr_max
PARAM_VALUE 1 rq->rq_next 0
DATA_SOURCE 1 rq r rq_list_pop
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 __tag_set->srcu
HALF_LOCKED2 rcu_read

drivers/block/ublk_drv.c ublk_batch_queue_rqs() -> rq_list_add_tail()

Type Parameter Key Value
PARAM_VALUE 0 rl 7319464189576245248
PARAM_VALUE 0 rl->head 0,4096-ptr_max
PARAM_VALUE 0 rl->tail 0,4096-ptr_max
PARAM_VALUE 1 rq 4096-ptr_max
PARAM_VALUE 1 rq->rq_next 0
DATA_SOURCE 1 rq r rq_list_pop
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 __tag_set->srcu
HALF_LOCKED2 rcu_read

drivers/block/ublk_drv.c ublk_queue_rqs() -> rq_list_add_tail()

Type Parameter Key Value
PARAM_VALUE 0 rl 8883750900380069888
PARAM_VALUE 0 rl->head 0,4096-ptr_max
PARAM_VALUE 0 rl->tail 0,4096-ptr_max
PARAM_VALUE 1 rq 4096-ptr_max
PARAM_VALUE 1 rq->rq_next 0
DATA_SOURCE 1 rq r rq_list_pop
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 __tag_set->srcu
HALF_LOCKED2 rcu_read

drivers/block/ublk_drv.c ublk_queue_rqs() -> rq_list_add_tail()

Type Parameter Key Value
PARAM_VALUE 0 rl 1700768280132829184
PARAM_VALUE 0 rl->head 0,4096-ptr_max
PARAM_VALUE 0 rl->tail 0,4096-ptr_max
PARAM_VALUE 1 rq 4096-ptr_max
PARAM_VALUE 1 rq->rq_next 0
DATA_SOURCE 1 rq r rq_list_pop
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 __tag_set->srcu
HALF_LOCKED2 rcu_read

drivers/block/null_blk/main.c blk_mq_add_to_batch() -> rq_list_add_tail()

Type Parameter Key Value
PARAM_VALUE 0 rl 4096-ptr_max
PARAM_VALUE 1 rq 4096-ptr_max
DATA_SOURCE 1 rq $0
BIT_INFO 1 rq->rq_flags 0x0,0xffffffef
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &ctx->uring_lock

drivers/block/null_blk/main.c null_queue_rqs() -> rq_list_add_tail()

Type Parameter Key Value
PARAM_VALUE 0 rl 6752731020276736000
PARAM_VALUE 0 rl->head 0,4096-ptr_max
PARAM_VALUE 0 rl->tail 0,4096-ptr_max
PARAM_VALUE 1 rq 4096-ptr_max
PARAM_VALUE 1 rq->rq_next 0
DATA_SOURCE 1 rq r rq_list_pop
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 __tag_set->srcu
HALF_LOCKED2 rcu_read

drivers/nvme/host/apple.c blk_mq_add_to_batch() -> rq_list_add_tail()

Type Parameter Key Value
PARAM_VALUE 0 rl 4096-ptr_max
PARAM_VALUE 1 rq 4096-ptr_max
DATA_SOURCE 1 rq $0
BIT_INFO 1 rq->rq_flags 0x0,0xffffffef
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &anv->lock
HALF_LOCKED2 flags
TYPE_LOCK (struct apple_nvme)->lock

drivers/block/virtio_blk.c blk_mq_add_to_batch() -> rq_list_add_tail()

Type Parameter Key Value
PARAM_VALUE 0 rl 4096-ptr_max
PARAM_VALUE 1 rq 4096-ptr_max
DATA_SOURCE 1 rq $0
BIT_INFO 1 rq->rq_flags 0x0,0xffffffef
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &vq->lock
LOCK2 flags
HALF_LOCKED2 &ctx->uring_lock
TYPE_LOCK (struct virtio_blk_vq)->lock

drivers/block/virtio_blk.c virtio_queue_rqs() -> rq_list_add_tail()

Type Parameter Key Value
PARAM_VALUE 0 rl 6344094897700220928
PARAM_VALUE 0 rl->head 0,4096-ptr_max
PARAM_VALUE 1 rq 4096-ptr_max
PARAM_VALUE 1 rq->rq_next 0
DATA_SOURCE 1 rq r rq_list_pop
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 __tag_set->srcu
HALF_LOCKED2 rcu_read

drivers/block/virtio_blk.c virtio_queue_rqs() -> rq_list_add_tail()

Type Parameter Key Value
PARAM_VALUE 0 rl 3911789036008480768
PARAM_VALUE 0 rl->head 0,4096-ptr_max
PARAM_VALUE 0 rl->tail 0,4096-ptr_max
PARAM_VALUE 1 rq 4096-ptr_max
PARAM_VALUE 1 rq->rq_next 0
DATA_SOURCE 1 rq r rq_list_pop
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 __tag_set->srcu
HALF_LOCKED2 rcu_read