Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

drivers/misc/mei/client.c mei_cl_irq_connect() -> mei_hbuf_empty_slots()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->device_lock
HALF_LOCKED2 _T->lock

drivers/misc/mei/client.c mei_cl_irq_disconnect() -> mei_hbuf_empty_slots()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->device_lock
HALF_LOCKED2 _T->lock

drivers/misc/mei/client.c mei_cl_irq_dma_map() -> mei_hbuf_empty_slots()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->device_lock
HALF_LOCKED2 _T->lock

drivers/misc/mei/client.c mei_cl_irq_dma_unmap() -> mei_hbuf_empty_slots()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->device_lock
HALF_LOCKED2 _T->lock

drivers/misc/mei/client.c mei_cl_irq_notify() -> mei_hbuf_empty_slots()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->device_lock
HALF_LOCKED2 _T->lock

drivers/misc/mei/client.c mei_cl_irq_write() -> mei_hbuf_empty_slots()

Type Parameter Key Value
PARAM_VALUE 0 dev 1-u64max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->device_lock
HALF_LOCKED2 _T->lock

drivers/misc/mei/client.c mei_cl_write() -> mei_hbuf_empty_slots()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->dev_state 3,6
PARAM_VALUE 0 dev->device_lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 dev->device_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 dev->device_lock.wait_lock.owner (-1)
PARAM_VALUE 0 dev->device_lock.wait_lock.owner_cpu u32max
PARAM_VALUE 0 dev->hbuf_is_ready 0
PARAM_VALUE 0 dev->ops 4096-ptr_max
PARAM_VALUE 0 dev->ops->pg_state 4096-ptr_max
PARAM_VALUE 0 dev->parent 4096-ptr_max
PARAM_VALUE 0 dev->parent->bus 0,4096-ptr_max
PARAM_VALUE 0 dev->parent->class 0,4096-ptr_max
PARAM_VALUE 0 dev->parent->power.request 0-4
PARAM_VALUE 0 dev->parent->power.runtime_error s32min-(-17),(-15)-(-14),(-12),(-10)-s32max
PARAM_VALUE 0 dev->parent->power.wakeirq 0,4096-ptr_max
PARAM_VALUE 0 dev->parent->power.wakeirq->status 0-4294967295
PARAM_VALUE 0 dev->parent->type 0,4096-ptr_max
PARAM_VALUE 0 dev->pg_event 0,2-u32max
PARAM_VALUE 0 dev->tx_queue_limit 1-255
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &bus->device_lock
HALF_LOCKED2 &dev->device_lock
TYPE_LOCK (struct mei_device)->device_lock

drivers/misc/mei/hw-me.c mei_me_hbuf_write() -> mei_hbuf_empty_slots()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->dev.kobj.parent->sd->attr.open->nr_mmapped 0-4294967295
PARAM_VALUE 0 dev->dev.kobj.sd->attr.open->nr_mmapped 0-4294967295
PARAM_VALUE 0 dev->dev.power.wakeirq->status 0-4294967295
PARAM_VALUE 0 dev->me_clients_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 dev->me_clients_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 dev->ops 4096-ptr_max
PARAM_VALUE 0 dev->ops->fw_status 1892171916109312000,4618666058892304384,7593493386518028288
PARAM_VALUE 0 dev->ops->hbuf_depth 4096-ptr_max
PARAM_VALUE 0 dev->ops->hbuf_free_slots 4096-ptr_max
PARAM_VALUE 0 dev->ops->hbuf_is_ready 1690850284272857088,6339080241053687808,7871574005532037120
PARAM_VALUE 0 dev->ops->host_is_ready 4096-ptr_max
PARAM_VALUE 0 dev->ops->hw_config 4687228832182272,2436609113278754816,2720495906664833024
PARAM_VALUE 0 dev->ops->hw_is_ready 4096-ptr_max
PARAM_VALUE 0 dev->ops->hw_reset 6823567617015533568,7108818143572221952,7174017488852860928
PARAM_VALUE 0 dev->ops->hw_start 7229540606219857920,7670079761038143488,7907936787985408000
PARAM_VALUE 0 dev->ops->intr_clear 4096-ptr_max
PARAM_VALUE 0 dev->ops->intr_disable 4096-ptr_max
PARAM_VALUE 0 dev->ops->intr_enable 903144306715283456,5403100406195335168,7388517679128662016
PARAM_VALUE 0 dev->ops->pg_in_transition 4209194584924688384,5374780382896922624,6674113790361702400
PARAM_VALUE 0 dev->ops->pg_is_enabled 4096-ptr_max
PARAM_VALUE 0 dev->ops->pg_state 4096-ptr_max
PARAM_VALUE 0 dev->ops->rdbuf_full_slots 4096-ptr_max
PARAM_VALUE 0 dev->ops->read 4096-ptr_max
PARAM_VALUE 0 dev->ops->read_hdr 4096-ptr_max
PARAM_VALUE 0 dev->ops->synchronize_irq 4096-ptr_max
PARAM_VALUE 0 dev->ops->trc_status 0,1905317001445699584
PARAM_VALUE 0 dev->ops->write 1788262204225368064,4755103806084919296,5663718548179369984
PARAM_VALUE 0 dev->parent->cma_area->nranges s32min-s32max
PARAM_VALUE 0 dev->parent->power.wakeirq->status 0-4294967295
PARAM_VALUE 0 *dev->rd_msg_hdr 0-4294967295
BUF_SIZE 0 dev s32min-(-1),1-s32max
BUF_SIZE 0 dev s32min-(-1),1-s32max
BUF_SIZE 0 dev->parent (-1),1616
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 0 &dev->device_lock

drivers/misc/mei/interrupt.c mei_cl_irq_disconnect_rsp() -> mei_hbuf_empty_slots()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->device_lock
HALF_LOCKED2 _T->lock

drivers/misc/mei/interrupt.c mei_cl_irq_read() -> mei_hbuf_empty_slots()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->device_lock
HALF_LOCKED2 _T->lock

drivers/misc/mei/interrupt.c mei_irq_write_handler() -> mei_hbuf_empty_slots()

Type Parameter Key Value
PARAM_VALUE 0 dev 4096-ptr_max
PARAM_VALUE 0 dev->dev.power.wakeirq->status 0-4294967295
PARAM_VALUE 0 dev->hbuf_is_ready 0
PARAM_VALUE 0 dev->me_clients_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 dev->me_clients_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 dev->ops 4096-ptr_max
PARAM_VALUE 0 dev->ops->hbuf_is_ready 4096-ptr_max
PARAM_VALUE 0 dev->ops->host_is_ready 4096-ptr_max
PARAM_VALUE 0 dev->ops->hw_is_ready 4096-ptr_max
PARAM_VALUE 0 dev->ops->pg_state 4096-ptr_max
PARAM_VALUE 0 dev->ops->rdbuf_full_slots 4096-ptr_max
PARAM_VALUE 0 dev->parent->cma_area->nranges s32min-s32max
PARAM_VALUE 0 dev->pg_event 0,2-u32max
PARAM_VALUE 0 *dev->rd_msg_buf 0-255
PARAM_VALUE 0 *dev->rd_msg_hdr 0-4294967295
BUF_SIZE 0 dev s32min-(-1),1-s32max
BUF_SIZE 0 dev s32min-(-1),1-s32max
DATA_SOURCE 0 dev $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 dev unit_byte
HALF_LOCKED2 _T->lock
HALF_LOCKED2 0 &dev->device_lock