Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 5 files:

Smatch caller information:

drivers/nvme/target/loop.c nvme_loop_cleanup_module() -> nvme_delete_ctrl()

Type Parameter Key Value
PARAM_VALUE 0 ctrl 4096-ptr_max
NOCHECK_CALL
LOCK2 global &nvme_loop_ctrl_mutex

drivers/nvme/target/loop.c nvme_loop_delete_ctrl() -> nvme_delete_ctrl()

Type Parameter Key Value
PARAM_VALUE 0 ctrl 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &nvme_loop_ctrl_mutex
HALF_LOCKED2 &buffer->mutex
HALF_LOCKED2 &frag->frag_sem
HALF_LOCKED2 &subsys->lock
HALF_LOCKED2 global &nvmet_config_sem

drivers/nvme/host/fc.c nvme_fc_delete_controllers() -> nvme_delete_ctrl()

Type Parameter Key Value
PARAM_VALUE 0 ctrl 4096-ptr_max
PARAM_VALUE 0 ctrl->device 0,4096-ptr_max
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
LOCK2 &rport->lock
LOCK2 flags
LOCK2 global &nvme_fc_lock
TYPE_LOCK (struct nvme_fc_rport)->lock

drivers/nvme/host/fc.c nvme_fc_reconnect_or_delete() -> nvme_delete_ctrl()

Type Parameter Key Value
PARAM_VALUE 0 ctrl 4096-ptr_max
PARAM_VALUE 0 ctrl->device 0,4096-ptr_max
PARAM_VALUE 0 ctrl->opts 4096-ptr_max
PARAM_VALUE 0 ctrl->state 3
HALF_LOCKED2 &pool->lock

drivers/nvme/host/fc.c nvme_fc_unregister_remoteport() -> nvme_delete_ctrl()

Type Parameter Key Value
PARAM_VALUE 0 ctrl 4096-ptr_max
PARAM_VALUE 0 ctrl->device 0,4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &rport->lock
LOCK2 flags
HALF_LOCKED2 &fnic->fnic_lock
TYPE_LOCK (struct nvme_fc_rport)->lock

drivers/nvme/host/rdma.c nvme_rdma_cleanup_module() -> nvme_delete_ctrl()

Type Parameter Key Value
PARAM_VALUE 0 ctrl 4096-ptr_max
NOCHECK_CALL
LOCK2 global &nvme_rdma_ctrl_mutex

drivers/nvme/host/rdma.c nvme_rdma_reconnect_or_remove() -> nvme_delete_ctrl()

Type Parameter Key Value
PARAM_VALUE 0 ctrl 4096-ptr_max
PARAM_VALUE 0 ctrl->state 3
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/nvme/host/rdma.c nvme_rdma_remove_one() -> nvme_delete_ctrl()

Type Parameter Key Value
PARAM_VALUE 0 ctrl 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &nvme_rdma_ctrl_mutex
HALF_LOCKED2 &ib_device->unregistration_lock

drivers/nvme/host/tcp.c nvme_tcp_cleanup_module() -> nvme_delete_ctrl()

Type Parameter Key Value
PARAM_VALUE 0 ctrl 4096-ptr_max
NOCHECK_CALL
LOCK2 global &nvme_tcp_ctrl_mutex

drivers/nvme/host/tcp.c nvme_tcp_reconnect_or_remove() -> nvme_delete_ctrl()

Type Parameter Key Value
PARAM_VALUE 0 ctrl 4096-ptr_max
PARAM_VALUE 0 ctrl->admin_q->dev->power.wakeirq->status 0-4294967295
PARAM_VALUE 0 ctrl->connect_q->dev->power.wakeirq->status 0-4294967295
PARAM_VALUE 0 ctrl->device 0,4096-ptr_max
PARAM_VALUE 0 ctrl->device->bus 0,4096-ptr_max
PARAM_VALUE 0 ctrl->device->class 0,4096-ptr_max
PARAM_VALUE 0 ctrl->device->driver 0,4096-ptr_max
PARAM_VALUE 0 ctrl->device->power.wakeirq->status 0-4294967295
PARAM_VALUE 0 ctrl->fabrics_q->dev->power.wakeirq->status 0-4294967295
PARAM_VALUE 0 ctrl->ops->reg_read32 4096-ptr_max
PARAM_VALUE 0 ctrl->ops->reg_read64 4096-ptr_max
PARAM_VALUE 0 ctrl->ops->reg_write32 4096-ptr_max
PARAM_VALUE 0 ctrl->ops->stop_ctrl 0,4096-ptr_max
PARAM_VALUE 0 ctrl->state 3
PARAM_VALUE 0 ctrl->tagset->update_nr_hwq_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 ctrl->tagset->update_nr_hwq_lock.first_waiter->type 0-1
PARAM_VALUE 0 *ctrl->subsys->firmware_rev 0-255
BUF_SIZE 0 ctrl (-1),5640
BUF_SIZE 0 ctrl (-1),5640
DATA_SOURCE 0 ctrl $0
NOCHECK_CALL
HOST_DATA 0 ctrl->cap 0-u64max
HOST_DATA 0 ctrl->vs 0-u32max
NO_OVERFLOW_SIMPLE 0 ctrl->ana_log_size
NO_OVERFLOW_SIMPLE 0 ctrl->connect_q->async_depth
NO_OVERFLOW_SIMPLE 0 ctrl->connect_q->limits.max_discard_sectors
NO_OVERFLOW_SIMPLE 0 ctrl->connect_q->limits.max_open_zones
NO_OVERFLOW_SIMPLE 0 ctrl->connect_q->nr_requests
NO_OVERFLOW_SIMPLE 0 ctrl->connect_q->tag_set->nr_hw_queues
NO_OVERFLOW_SIMPLE 0 ctrl->connect_q->tag_set->queue_depth
NO_OVERFLOW_SIMPLE 0 ctrl->tagset->queue_depth
HALF_LOCKED2 &pool->lock