Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

drivers/gpu/drm/virtio/virtgpu_ioctl.c virtio_gpu_transfer_from_host_ioctl() -> virtio_gpu_array_unlock_resv()

Type Parameter Key Value
PARAM_VALUE 0 objs 4096-ptr_max
PARAM_VALUE 0 objs->nents 1
PARAM_VALUE 0 objs->objs 4096-ptr_max
PARAM_VALUE 0 objs->ticket.contending_lock 0
PARAM_VALUE 0 objs->ticket.dep_map->name 0-255
PARAM_VALUE 0 objs->ticket.done_acquire 1
PARAM_VALUE 0 objs->ticket.first_lock_dep_map->name 0-255
PARAM_VALUE 0 objs->ticket.wounded 0-1
PARAM_VALUE 0 objs->ticket.ww_class->acquire_name 4096-ptr_max
PARAM_VALUE 0 objs->ticket.ww_class->is_wait_die 0-s32max
PARAM_VALUE 0 objs->ticket.ww_class->mutex_name 4096-ptr_max
PARAM_VALUE 0 objs->total 1
BUF_SIZE 0 objs 184-s32max
BUF_SIZE 0 objs 184-s32max
DATA_SOURCE 0 objs r virtio_gpu_array_from_handles
NOCHECK_CALL
USER_DATA 0 objs->total 1[u]

drivers/gpu/drm/virtio/virtgpu_ioctl.c virtio_gpu_transfer_to_host_ioctl() -> virtio_gpu_array_unlock_resv()

Type Parameter Key Value
PARAM_VALUE 0 objs 4096-ptr_max
PARAM_VALUE 0 objs->nents 1
PARAM_VALUE 0 objs->objs 4096-ptr_max
PARAM_VALUE 0 objs->ticket.contending_lock 0
PARAM_VALUE 0 objs->ticket.dep_map->name 0-255
PARAM_VALUE 0 objs->ticket.done_acquire 1
PARAM_VALUE 0 objs->ticket.first_lock_dep_map->name 0-255
PARAM_VALUE 0 objs->ticket.wounded 0-1
PARAM_VALUE 0 objs->ticket.ww_class->acquire_name 4096-ptr_max
PARAM_VALUE 0 objs->ticket.ww_class->is_wait_die 0-s32max
PARAM_VALUE 0 objs->ticket.ww_class->mutex_name 4096-ptr_max
PARAM_VALUE 0 objs->total 1
BUF_SIZE 0 objs 184-s32max
BUF_SIZE 0 objs 184-s32max
DATA_SOURCE 0 objs r virtio_gpu_array_from_handles
NOCHECK_CALL
USER_DATA 0 objs->total 1[u]

drivers/gpu/drm/virtio/virtgpu_vq.c virtio_gpu_queue_ctrl_sgs() -> virtio_gpu_array_unlock_resv()

Type Parameter Key Value
PARAM_VALUE 0 objs 1-u64max
BUF_SIZE 0 objs (-1)-0,184-s32max
BUF_SIZE 0 objs (-1)-0,184-s32max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 objs->total 1[u]
HALF_LOCKED2 &vgdev->obj_restore_lock

drivers/gpu/drm/virtio/virtgpu_vq.c virtio_gpu_queue_ctrl_sgs() -> virtio_gpu_array_unlock_resv()

Type Parameter Key Value
PARAM_VALUE 0 objs 1-u64max
BUF_SIZE 0 objs (-1)-0,184-s32max
BUF_SIZE 0 objs (-1)-0,184-s32max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 objs->total 1[u]
LOCK2 global &drm_unplug_srcu
HALF_LOCKED2 &vgdev->obj_restore_lock

drivers/gpu/drm/virtio/virtgpu_vq.c virtio_gpu_queue_ctrl_sgs() -> virtio_gpu_array_unlock_resv()

Type Parameter Key Value
PARAM_VALUE 0 objs 4096-ptr_max
PARAM_VALUE 0 objs->nents 0-s32max
BUF_SIZE 0 objs (-1)-0,184-s32max
BUF_SIZE 0 objs (-1)-0,184-s32max
CAPPED_DATA 0 objs->nents 1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 objs->total 1[u]
LOCK2 &vgdev->ctrlq.qlock
LOCK2 global &drm_unplug_srcu
HALF_LOCKED2 &vgdev->obj_restore_lock
TYPE_LOCK (struct virtio_gpu_queue)->qlock

drivers/gpu/drm/virtio/virtgpu_vq.c virtio_gpu_queue_fenced_ctrl_buffer() -> virtio_gpu_array_unlock_resv()

Type Parameter Key Value
PARAM_VALUE 0 objs 1-u64max
BUF_SIZE 0 objs (-1)-0,184-s32max
BUF_SIZE 0 objs (-1)-0,184-s32max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 objs->total 1[u]

drivers/gpu/drm/virtio/virtgpu_gem.c virtio_gpu_array_lock_resv() -> virtio_gpu_array_unlock_resv()

Type Parameter Key Value
PARAM_VALUE 0 objs 4096-ptr_max
PARAM_VALUE 0 objs->nents 1-u32max
PARAM_VALUE 0 objs->objs 4096-ptr_max
PARAM_VALUE 0 objs->ticket.dep_map->name 0-255
PARAM_VALUE 0 objs->ticket.first_lock_dep_map->name 0-255
PARAM_VALUE 0 objs->ticket.wounded 0-1
PARAM_VALUE 0 objs->ticket.ww_class->acquire_name 0,4096-ptr_max
PARAM_VALUE 0 objs->ticket.ww_class->is_wait_die 0-s32max
PARAM_VALUE 0 objs->ticket.ww_class->mutex_name 0,4096-ptr_max
BUF_SIZE 0 objs (-1),184-s32max
BUF_SIZE 0 objs (-1),184-s32max
CAPPED_DATA 0 objs->nents 1
DATA_SOURCE 0 objs $0
RX_PATH
NOCHECK_CALL
USER_DATA 0 objs->total 1[u]

drivers/gpu/drm/virtio/virtgpu_gem.c virtio_gpu_lock_one_resv_uninterruptible() -> virtio_gpu_array_unlock_resv()

Type Parameter Key Value
PARAM_VALUE 0 objs 4096-ptr_max
PARAM_VALUE 0 objs->nents 1
PARAM_VALUE 0 objs->objs 4096-ptr_max
PARAM_VALUE 0 objs->total 1
BUF_SIZE 0 objs 184-s32max
BUF_SIZE 0 objs 184-s32max
DATA_SOURCE 0 objs $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 irq