Defined in 1 files as a function:

Referenced in 5 files:

Smatch caller information:

block/elevator.c blk_discard_mergable() -> queue_max_discard_segments()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &bfqd->lock
HALF_LOCKED2 &bio->bi_bdev->bd_queue->queue_lock
HALF_LOCKED2 &dd->lock
HALF_LOCKED2 irq

block/blk-mq.c blk_rq_get_max_segments() -> queue_max_discard_segments()

Type Parameter Key Value
PARAM_VALUE 0 q 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 __tag_set->srcu
HALF_LOCKED2 rcu_read

block/bfq-iosched.c blk_discard_mergable() -> queue_max_discard_segments()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &bfqd->lock
HALF_LOCKED2 &bio->bi_bdev->bd_queue->queue_lock
HALF_LOCKED2 &dd->lock
HALF_LOCKED2 irq

drivers/nvme/host/core.c nvme_setup_discard() -> queue_max_discard_segments()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 __tag_set->srcu
HALF_LOCKED2 rcu_read

block/blk-merge.c bio_attempt_discard_merge() -> queue_max_discard_segments()

Type Parameter Key Value
DATA_SOURCE 0 q $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 q->last_merge->__data_len 1024-4294966272[c]
HOST_DATA 0 q->last_merge->__sector 0-18446744073709551614
HALF_LOCKED2 &bio->bi_bdev->bd_queue->queue_lock

block/blk-merge.c blk_discard_mergable() -> queue_max_discard_segments()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

block/blk-merge.c blk_recalc_rq_segments() -> queue_max_discard_segments()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 q->async_depth
NO_OVERFLOW_SIMPLE 0 q->limits.discard_granularity
NO_OVERFLOW_SIMPLE 0 q->limits.io_min
NO_OVERFLOW_SIMPLE 0 q->limits.logical_block_size
NO_OVERFLOW_SIMPLE 0 q->limits.max_discard_sectors
NO_OVERFLOW_SIMPLE 0 q->limits.max_hw_discard_sectors
NO_OVERFLOW_SIMPLE 0 q->limits.max_open_zones
NO_OVERFLOW_SIMPLE 0 q->limits.physical_block_size
NO_OVERFLOW_SIMPLE 0 q->limits.zone_write_granularity
NO_OVERFLOW_SIMPLE 0 q->nr_hw_queues
NO_OVERFLOW_SIMPLE 0 q->nr_requests
NO_OVERFLOW_SIMPLE 0 q->q_usage_counter.percpu_count_ptr

block/blk-merge.c blk_rq_get_max_segments() -> queue_max_discard_segments()

Type Parameter Key Value
PARAM_VALUE 0 q 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 q->async_depth
NO_OVERFLOW_SIMPLE 0 q->limits.discard_granularity
NO_OVERFLOW_SIMPLE 0 q->limits.max_discard_sectors
NO_OVERFLOW_SIMPLE 0 q->limits.max_hw_discard_sectors
NO_OVERFLOW_SIMPLE 0 q->limits.max_open_zones
NO_OVERFLOW_SIMPLE 0 q->limits.physical_block_size
NO_OVERFLOW_SIMPLE 0 q->limits.zone_write_granularity
NO_OVERFLOW_SIMPLE 0 q->nr_hw_queues
NO_OVERFLOW_SIMPLE 0 q->nr_requests
NO_OVERFLOW_SIMPLE 0 q->q_usage_counter.percpu_count_ptr

block/blk-merge.c req_attempt_discard_merge() -> queue_max_discard_segments()

Type Parameter Key Value
PARAM_VALUE 0 q 4096-ptr_max
DATA_SOURCE 0 q $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 q->last_merge->__sector 0-s32max[c]
HALF_LOCKED2 &bfqd->lock
HALF_LOCKED2 &dd->lock
HALF_LOCKED2 irq

block/mq-deadline.c blk_discard_mergable() -> queue_max_discard_segments()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &bfqd->lock
HALF_LOCKED2 &bio->bi_bdev->bd_queue->queue_lock
HALF_LOCKED2 &dd->lock
HALF_LOCKED2 irq

drivers/block/virtio_blk.c virtblk_setup_discard_write_zeroes_erase() -> queue_max_discard_segments()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 __tag_set->srcu
HALF_LOCKED2 rcu_read