Defined in 1 files as a function:

Referenced in 5 files:

Smatch caller information:

block/elevator.c elv_rqhash_find() -> rq_mergeable()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
BIT_INFO 0 rq->rq_flags 0x400,0xffffffff
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &bfqd->lock
HALF_LOCKED2 &dd->lock
HALF_LOCKED2 irq

block/blk-mq-sched.c blk_mq_sched_try_insert_merge() -> rq_mergeable()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
DATA_SOURCE 0 rq $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &bfqd->lock
HALF_LOCKED2 &dd->lock
HALF_LOCKED2 irq

block/bfq-iosched.c bfq_insert_request() -> rq_mergeable()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
CAPPED_DATA 0 rq 1
CAPPED_DATA 0 rq->q->elevator->elevator_data->num_actuators 1
DATA_SOURCE 0 rq $1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
UNITS 0 rq unit_byte
LOCK2 &bfqd->lock
LOCK2 irq
TYPE_LOCK (struct bfq_data)->lock

block/blk-merge.c attempt_merge() -> rq_mergeable()

Type Parameter Key Value
PARAM_VALUE 0 rq 1-u64max
CAPPED_DATA 0 rq 1
DATA_SOURCE 0 rq $1
NOSPEC 0 rq->biotail->bi_iter.bi_sector
NOSPEC 0 rq->biotail->bi_iter.bi_size
NOSPEC 0 rq->biotail->bi_next->bi_iter.bi_sector
NOSPEC 0 rq->biotail->bi_next->bi_iter.bi_size
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 rq->__data_len 1024-4294966272[c]
HOST_DATA 0 rq->__sector 0-u64max
HOST_DATA 0 rq->biotail->bi_iter.bi_sector 0-u64max
HOST_DATA 0 rq->biotail->bi_iter.bi_size 1-u32max[c]
HOST_DATA 0 rq->biotail->bi_max_vecs 0-4,16,64,128,256[c]
HOST_DATA 0 rq->biotail->bi_next->bi_iter.bi_sector 0-u64max
HOST_DATA 0 rq->biotail->bi_next->bi_iter.bi_size 0-u32max[c]
HOST_DATA 0 rq->biotail->bi_next->bi_max_vecs 0-4,16,64,128,256[c]
USER_DATA 0 rq->biotail->bi_ioprio 0-u16max
USER_DATA 0 rq->biotail->bi_iter.bi_sector 0-u64max
USER_DATA 0 rq->biotail->bi_iter.bi_size 1-u32max
USER_DATA 0 rq->biotail->bi_max_vecs 0-u16max[c]
USER_DATA 0 rq->biotail->bi_next->bi_ioprio 0-u16max
USER_DATA 0 rq->biotail->bi_next->bi_iter.bi_sector 0-u64max
USER_DATA 0 rq->biotail->bi_next->bi_iter.bi_size 0-u32max
USER_DATA 0 rq->biotail->bi_next->bi_max_vecs 0-u16max[c]
UNITS 0 rq unit_byte
HALF_LOCKED2 &bfqd->lock
HALF_LOCKED2 &dd->lock
HALF_LOCKED2 irq

block/blk-merge.c attempt_merge() -> rq_mergeable()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
CAPPED_DATA 0 rq 1
DATA_SOURCE 0 rq $2
NOSPEC 0 rq->__sector
NOSPEC 0 rq->bio->bi_iter.bi_sector
NOSPEC 0 rq->bio->bi_iter.bi_size
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 rq->__data_len 1024-4294966272[c]
HOST_DATA 0 rq->__sector 0-u64max
HOST_DATA 0 rq->bio->bi_iter.bi_sector 0-u64max
HOST_DATA 0 rq->bio->bi_iter.bi_size 1-u32max[c]
HOST_DATA 0 rq->bio->bi_max_vecs 0-4,16,64,128,256[c]
USER_DATA 0 rq->__sector 0-u64max
USER_DATA 0 rq->bio->bi_ioprio 0-u16max
USER_DATA 0 rq->bio->bi_iter.bi_sector 0-u64max
USER_DATA 0 rq->bio->bi_iter.bi_size 1-u32max[c]
USER_DATA 0 rq->bio->bi_max_vecs 0-u16max[c]
UNITS 0 rq unit_byte
HALF_LOCKED2 &bfqd->lock
HALF_LOCKED2 &dd->lock
HALF_LOCKED2 irq

block/blk-merge.c blk_rq_merge_ok() -> rq_mergeable()

Type Parameter Key Value
PARAM_VALUE 0 rq 1-u64max
CAPPED_DATA 0 rq 1
DATA_SOURCE 0 rq $0
NOSPEC 0 rq->__data_len
NOSPEC 0 rq->__sector
NOSPEC 0 rq->bio->bi_iter.bi_sector
NOSPEC 0 rq->bio->bi_iter.bi_size
NOSPEC 0 rq->biotail->bi_iter.bi_sector
NOSPEC 0 rq->biotail->bi_iter.bi_size
NOSPEC 0 rq->biotail->bi_next->bi_iter.bi_sector
NOSPEC 0 rq->biotail->bi_next->bi_iter.bi_size
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 rq->__data_len 1-u32max[c]
HOST_DATA 0 rq->__sector 0-u64max
HOST_DATA 0 rq->bio->bi_iter.bi_sector 0-u64max
HOST_DATA 0 rq->bio->bi_iter.bi_size 512-4294966784[c]
HOST_DATA 0 rq->bio->bi_max_vecs 0-4,16,64,128,256[c]
HOST_DATA 0 rq->biotail->bi_iter.bi_sector 0-u64max
HOST_DATA 0 rq->biotail->bi_iter.bi_size 0-u32max[c]
HOST_DATA 0 rq->biotail->bi_max_vecs 0-u16max[c]
HOST_DATA 0 rq->biotail->bi_next->bi_iter.bi_sector 0-u64max
HOST_DATA 0 rq->biotail->bi_next->bi_iter.bi_size 0-u32max[c]
HOST_DATA 0 rq->biotail->bi_next->bi_max_vecs 0-u16max[c]
USER_DATA 0 rq->__data_len 1-u32max
USER_DATA 0 rq->__sector 0-u64max
USER_DATA 0 rq->bio->bi_ioprio 0-u16max
USER_DATA 0 rq->bio->bi_iter.bi_sector 0-u64max
USER_DATA 0 rq->bio->bi_iter.bi_size 1-u32max[c]
USER_DATA 0 rq->bio->bi_max_vecs 0-u16max[c]
USER_DATA 0 rq->biotail->bi_ioprio 0-u16max
USER_DATA 0 rq->biotail->bi_iter.bi_sector 0-u64max
USER_DATA 0 rq->biotail->bi_iter.bi_size 0-u32max
USER_DATA 0 rq->biotail->bi_max_vecs 0-u16max[c]
USER_DATA 0 rq->biotail->bi_next->bi_ioprio 0-u16max
USER_DATA 0 rq->biotail->bi_next->bi_iter.bi_sector 0-u64max
USER_DATA 0 rq->biotail->bi_next->bi_iter.bi_size 0-u32max
USER_DATA 0 rq->biotail->bi_next->bi_max_vecs 0-u16max[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 0 rq unit_byte
HALF_LOCKED2 &zwplug->lock
HALF_LOCKED2 flags

block/mq-deadline.c dd_insert_request() -> rq_mergeable()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
CAPPED_DATA 0 rq 1
DATA_SOURCE 0 rq $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dd->lock
TYPE_LOCK (struct deadline_data)->lock