Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

drivers/hv/vmbus_drv.c vmbus_device_release() -> hv_process_channel_removal()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &vmbus_connection.channel_mutex
TYPE_LOCK (struct vmbus_connection)->channel_mutex

drivers/hv/channel.c vmbus_disconnect_ring() -> hv_process_channel_removal()

Type Parameter Key Value
PARAM_VALUE 0 channel 4096-ptr_max
PARAM_VALUE 0 channel->close_msg.header.msgtype 7
PARAM_VALUE 0 channel->inbound.pkt_buffer 0
PARAM_VALUE 0 channel->inbound.pkt_buffer_size 0
PARAM_VALUE 0 channel->inbound.ring_buffer 0
PARAM_VALUE 0 channel->inbound.ring_buffer_mutex.dep_map->name 0-255
PARAM_VALUE 0 channel->inbound.ring_buffer_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 channel->inbound.ring_buffer_mutex.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 channel->inbound.ring_buffer_mutex.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 channel->inbound.ring_buffer_mutex.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 channel->inbound.ring_buffer_mutex.first_waiter->task->blocked_lock.owner_cpu 4294967295
PARAM_VALUE 0 channel->inbound.ring_buffer_mutex.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 channel->inbound.ring_buffer_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 channel->onchannel_callback 0
PARAM_VALUE 0 channel->outbound.pkt_buffer 0
PARAM_VALUE 0 channel->outbound.pkt_buffer_size 0
PARAM_VALUE 0 channel->outbound.ring_buffer 0
PARAM_VALUE 0 channel->outbound.ring_buffer_mutex.dep_map->name 0-255
PARAM_VALUE 0 channel->outbound.ring_buffer_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 channel->outbound.ring_buffer_mutex.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 channel->outbound.ring_buffer_mutex.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 channel->outbound.ring_buffer_mutex.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 channel->outbound.ring_buffer_mutex.first_waiter->task->blocked_lock.owner_cpu 4294967295
PARAM_VALUE 0 channel->outbound.ring_buffer_mutex.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 channel->outbound.ring_buffer_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 channel->rescind 1
PARAM_VALUE 0 channel->rescind_event.done 0-4294967293,u32max
PARAM_VALUE 0 channel->rescind_event.wait.lock.dep_map->name 0-255
PARAM_VALUE 0 channel->rescind_event.wait.lock.owner (-1)
PARAM_VALUE 0 channel->rescind_event.wait.lock.owner_cpu u32max
PARAM_VALUE 0 channel->rescind_event.wait.task_list.prev->next 4096-ptr_max
PARAM_VALUE 0 channel->rescind_event.wait.task_list.prev->next->next 4096-ptr_max
PARAM_VALUE 0 channel->ringbuffer_page 0
PARAM_VALUE 0 channel->sc_creation_callback 0
PARAM_VALUE 0 channel->sched_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 channel->state 2
CAPPED_DATA 0 channel->requestor.req_arr 1
CAPPED_DATA 0 channel->requestor.req_bitmap 1
CAPPED_DATA 0 &channel->sc_list 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &vmbus_connection.channel_mutex
HALF_LOCKED2 &idev->info_lock
TYPE_LOCK (struct vmbus_connection)->channel_mutex

drivers/hv/channel_mgmt.c vmbus_onoffer_rescind() -> hv_process_channel_removal()

Type Parameter Key Value
PARAM_VALUE 0 channel 4096-ptr_max
PARAM_VALUE 0 channel->device_obj 0
PARAM_VALUE 0 channel->onchannel_callback 0
PARAM_VALUE 0 channel->primary_channel 1-u64max
PARAM_VALUE 0 channel->probe_done 1
PARAM_VALUE 0 channel->rescind 1
PARAM_VALUE 0 channel->rescind_ref 1
PARAM_VALUE 0 channel->sc_creation_callback 0
PARAM_VALUE 0 channel->sched_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 channel->state 2
CAPPED_DATA 0 channel 1
DATA_SOURCE 0 channel r relid2channel
NOCHECK_CALL
LOCK2 global &vmbus_connection.channel_mutex
TYPE_LOCK (struct vmbus_connection)->channel_mutex