Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/scsi/mpi3mr/mpi3mr_fw.c mpi3mr_soft_reset_handler() -> mpi3mr_flush_cmds_for_unrecovered_controller()

Type Parameter Key Value
PARAM_VALUE 0 mrioc 4096-ptr_max
PARAM_VALUE 0 mrioc->device_refresh_on 0
PARAM_VALUE 0 mrioc->invalid_io_comp 0
PARAM_VALUE 0 mrioc->reset_in_progress 0
PARAM_VALUE 0 mrioc->shost 4096-ptr_max
PARAM_VALUE 0 mrioc->shost->host_lock 4096-ptr_max
PARAM_VALUE 0 mrioc->shost->host_lock->rlock.dep_map->name 0-255
PARAM_VALUE 0 mrioc->shost->host_self_blocked 0
PARAM_VALUE 0 mrioc->stop_bsgs 0
PARAM_VALUE 0 mrioc->sysif_regs 4096-ptr_max
PARAM_VALUE 0 mrioc->unrecoverable 1
PARAM_VALUE 0 *mrioc->pdev->saved_config_space 0-4294967295
PARAM_VALUE 0 *mrioc->saved_fault_info 0-4294967295
CAPPED_DATA 0 &mrioc->reset_mutex 1
DATA_SOURCE 0 mrioc $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 mrioc->pdev->current_state 0-3[c]
HOST_DATA 0 mrioc->saved_fault_code 0-u16max
LOCK2 0 &mrioc->reset_mutex
HALF_LOCKED2 &drv_cmd->mutex
HALF_LOCKED2 0 &mrioc->bsg_cmds.mutex
HALF_LOCKED2 0 &mrioc->pel_abort_cmd.mutex
TYPE_LOCK (struct mpi3mr_ioc)->reset_mutex

drivers/scsi/mpi3mr/mpi3mr_fw.c mpi3mr_watchdog_work() -> mpi3mr_flush_cmds_for_unrecovered_controller()

Type Parameter Key Value
PARAM_VALUE 0 mrioc 4096-ptr_max
PARAM_VALUE 0 mrioc->fault_during_init 0
PARAM_VALUE 0 mrioc->pci_err_recovery 0
PARAM_VALUE 0 mrioc->pdev 4096-ptr_max
PARAM_VALUE 0 mrioc->reset_in_progress 0
PARAM_VALUE 0 mrioc->unrecoverable 1-255
FUZZY_MAX 0 mrioc->unrecoverable 1
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/scsi/mpi3mr/mpi3mr_os.c mpi3mr_pcierr_error_detected() -> mpi3mr_flush_cmds_for_unrecovered_controller()

Type Parameter Key Value
PARAM_VALUE 0 mrioc 4096-ptr_max
PARAM_VALUE 0 mrioc->block_on_pci_err 1
PARAM_VALUE 0 mrioc->pci_err_recovery 1
PARAM_VALUE 0 mrioc->unrecoverable 1
PARAM_VALUE 0 mrioc->watchdog_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 mrioc->watchdog_work.work.lockdep_map->name 0-255
PARAM_VALUE 0 mrioc->watchdog_work_q 0
PARAM_VALUE 0 mrioc->watchdog_work_q->first_flusher->done.done 0-4294967295
PARAM_VALUE 0 mrioc->watchdog_work_q->first_flusher->done.wait.lock.dep_map->name 0-255
PARAM_VALUE 0 mrioc->watchdog_work_q->first_flusher->done.wait.lock.owner (-1)
PARAM_VALUE 0 mrioc->watchdog_work_q->first_flusher->done.wait.lock.owner_cpu 4294967295
PARAM_VALUE 0 mrioc->watchdog_work_q->flags 0-4294967295
PARAM_VALUE 0 mrioc->watchdog_work_q->flush_color s32min-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->flusher_queue.prev->next 2906673126597898240
PARAM_VALUE 0 mrioc->watchdog_work_q->nr_drainers s32min-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->nr_pwqs_to_flush.counter s32min-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->rescuer 0
PARAM_VALUE 0 mrioc->watchdog_work_q->work_color s32min-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev 0
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev->driver_data->cis_virt (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.devres_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->callback->add 5235430000054906880
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->callback->early_resume 6956900869090054144
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->callback->remove 1719268733136482304
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->callback->requery 4713442613417914368
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->callback->resume 5068206944467017728
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->callback->suspend 2738892915008757760
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->callback->validate 4934365872137547776
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->cdev->kobj.release.timer.is_hard 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->cdev->kobj.release.timer.is_lazy 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->cdev->kobj.release.timer.is_queued 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->cdev->kobj.release.timer.is_soft 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->cis_mem.flags 0,2-254
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->d_ref.refcount.refs.counter s32min-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->detaching.counter s32min-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->dev.kobj.release.cpu s32min-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->dev.kobj.release.timer.flags 0-4294967295
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->dev.kobj.release.timer.is_hard 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->dev.kobj.release.timer.is_lazy 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->dev.kobj.release.timer.is_queued 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->dev.kobj.release.timer.is_soft 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->device_count 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->ops_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->sfd_lock.dep_map->name 0-255
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->sfd_lock.raw_lock.cnts.counter s32min-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->skt_mutex->wait_lock.owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->skt_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.kobj.parent->release.timer.is_hard 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.kobj.parent->release.timer.is_lazy 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.kobj.parent->release.timer.is_queued 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.kobj.parent->release.timer.is_soft 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.kobj.release.timer.is_hard 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.kobj.release.timer.is_lazy 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.kobj.release.timer.is_queued 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.kobj.release.timer.is_soft 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.kobj.sd->attr.open->nr_mmapped 0-4294967295
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.p->dead 1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.p->knode_class.n_ref.refcount.refs.counter s32min-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.p->knode_parent.n_ref.refcount.refs.counter s32min-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.parent->kobj.release.timer.is_hard 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.parent->kobj.release.timer.is_lazy 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.parent->kobj.release.timer.is_queued 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.parent->kobj.release.timer.is_soft 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.power.completion.done 4294967295
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.power.last_status s32min-0,2,4-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.power.qos (-19),0
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.power.runtime_error s32min-(-17),(-15)-(-14),(-12),(-10)-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.power.runtime_status 2
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.power.usage_count.counter 0-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.power.wakeirq->status 0-4294967295
PARAM_VALUE 0 *mrioc->watchdog_work_q->lockdep_map->name 0-255
PARAM_VALUE 0 *mrioc->watchdog_work_q->rescuer->task->delays->lock.owner (-4611686018427387904)-4611686018427387903
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pdev->dev.mutex

drivers/scsi/mpi3mr/mpi3mr_os.c mpi3mr_pcierr_error_detected() -> mpi3mr_flush_cmds_for_unrecovered_controller()

Type Parameter Key Value
PARAM_VALUE 0 mrioc 4096-ptr_max
PARAM_VALUE 0 mrioc->block_on_pci_err 1
PARAM_VALUE 0 mrioc->pci_err_recovery 1
PARAM_VALUE 0 mrioc->unrecoverable 1
PARAM_VALUE 0 mrioc->watchdog_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 mrioc->watchdog_work.work.lockdep_map->name 0-255
PARAM_VALUE 0 mrioc->watchdog_work_q 0
PARAM_VALUE 0 mrioc->watchdog_work_q->first_flusher->done.done 0-4294967295
PARAM_VALUE 0 mrioc->watchdog_work_q->first_flusher->done.wait.lock.dep_map->name 0-255
PARAM_VALUE 0 mrioc->watchdog_work_q->first_flusher->done.wait.lock.owner (-1)
PARAM_VALUE 0 mrioc->watchdog_work_q->first_flusher->done.wait.lock.owner_cpu 4294967295
PARAM_VALUE 0 mrioc->watchdog_work_q->flags 0-4294967295
PARAM_VALUE 0 mrioc->watchdog_work_q->flush_color s32min-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->flusher_queue.prev->next 2906673126597898240
PARAM_VALUE 0 mrioc->watchdog_work_q->nr_drainers s32min-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->nr_pwqs_to_flush.counter s32min-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->rescuer 0
PARAM_VALUE 0 mrioc->watchdog_work_q->work_color s32min-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev 0
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev->driver_data->cis_virt (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.devres_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->callback->add 5235430000054906880
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->callback->early_resume 6956900869090054144
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->callback->remove 1719268733136482304
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->callback->requery 4713442613417914368
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->callback->resume 5068206944467017728
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->callback->suspend 2738892915008757760
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->callback->validate 4934365872137547776
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->cdev->kobj.release.timer.is_hard 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->cdev->kobj.release.timer.is_lazy 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->cdev->kobj.release.timer.is_queued 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->cdev->kobj.release.timer.is_soft 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->cis_mem.flags 0,2-254
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->d_ref.refcount.refs.counter s32min-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->detaching.counter s32min-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->dev.kobj.release.cpu s32min-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->dev.kobj.release.timer.flags 0-4294967295
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->dev.kobj.release.timer.is_hard 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->dev.kobj.release.timer.is_lazy 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->dev.kobj.release.timer.is_queued 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->dev.kobj.release.timer.is_soft 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->device_count 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->ops_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->sfd_lock.dep_map->name 0-255
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->sfd_lock.raw_lock.cnts.counter s32min-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->skt_mutex->wait_lock.owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.driver_data->skt_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.kobj.parent->release.timer.is_hard 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.kobj.parent->release.timer.is_lazy 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.kobj.parent->release.timer.is_queued 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.kobj.parent->release.timer.is_soft 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.kobj.release.timer.is_hard 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.kobj.release.timer.is_lazy 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.kobj.release.timer.is_queued 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.kobj.release.timer.is_soft 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.kobj.sd->attr.open->nr_mmapped 0-4294967295
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.p->dead 1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.p->knode_class.n_ref.refcount.refs.counter s32min-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.p->knode_parent.n_ref.refcount.refs.counter s32min-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.parent->kobj.release.timer.is_hard 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.parent->kobj.release.timer.is_lazy 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.parent->kobj.release.timer.is_queued 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.parent->kobj.release.timer.is_soft 0-1
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.power.completion.done 4294967295
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.power.last_status s32min-0,2,4-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.power.qos (-19),0
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.power.runtime_error s32min-(-17),(-15)-(-14),(-12),(-10)-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.power.runtime_status 2
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.power.usage_count.counter 0-s32max
PARAM_VALUE 0 mrioc->watchdog_work_q->wq_dev->dev.power.wakeirq->status 0-4294967295
PARAM_VALUE 0 *mrioc->watchdog_work_q->lockdep_map->name 0-255
PARAM_VALUE 0 *mrioc->watchdog_work_q->rescuer->task->delays->lock.owner (-4611686018427387904)-4611686018427387903
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pdev->dev.mutex

drivers/scsi/mpi3mr/mpi3mr_os.c mpi3mr_remove() -> mpi3mr_flush_cmds_for_unrecovered_controller()

Type Parameter Key Value
PARAM_VALUE 0 mrioc 4096-ptr_max
PARAM_VALUE 0 mrioc->block_on_pci_err 0
PARAM_VALUE 0 mrioc->is_driver_loading 0
PARAM_VALUE 0 mrioc->pdev 4096-ptr_max
PARAM_VALUE 0 mrioc->reset_in_progress 0
PARAM_VALUE 0 mrioc->unrecoverable 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL