Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/vfio/pci/mlx5/main.c mlx5vf_add_stop_copy_header() -> mlx5vf_put_data_buffer()

Type Parameter Key Value
PARAM_VALUE 0 buf 4096-ptr_max
PARAM_VALUE 0 buf->dma_dir 2-3
PARAM_VALUE 0 buf->migf 4096-ptr_max
PARAM_VALUE 0 buf->migf->mvdev->mdev->cmd.vars.throttle_sem.first_waiter->up 0-1
PARAM_VALUE 0 buf->migf->mvdev->mdev->cmd.vars.unprivileged_sem.first_waiter->up 0-1
PARAM_VALUE 0 buf->migf->mvdev->mdev_detach 0-1
BUF_SIZE 0 buf (-1),88
BUF_SIZE 0 buf (-1),88
CAPPED_DATA 0 buf->dma_dir 1
DATA_SOURCE 0 buf r mlx5vf_get_data_buffer
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 buf->npages
LOCK2 &mvdev->state_mutex
TYPE_LOCK (struct mlx5vf_pci_core_device)->state_mutex

drivers/vfio/pci/mlx5/main.c mlx5vf_mig_file_get_stop_copy_buf() -> mlx5vf_put_data_buffer()

Type Parameter Key Value
PARAM_VALUE 0 buf 4096-ptr_max
PARAM_VALUE 0 buf->migf 4096-ptr_max
PARAM_VALUE 0 buf->migf->buf 4096-ptr_max
PARAM_VALUE 0 buf->npages 0-4294967294
CAPPED_DATA 0 buf->npages 1
NOCHECK_CALL
LOCK2 &mvdev->state_mutex
TYPE_LOCK (struct mlx5vf_pci_core_device)->state_mutex

drivers/vfio/pci/mlx5/main.c mlx5vf_mig_file_save_work() -> mlx5vf_put_data_buffer()

Type Parameter Key Value
PARAM_VALUE 0 buf 4096-ptr_max
PARAM_VALUE 0 buf->migf 4096-ptr_max
PARAM_VALUE 0 buf->migf->buf 4096-ptr_max
PARAM_VALUE 0 buf->migf->mvdev->mdev->cmd.vars.throttle_sem.first_waiter->up 0-1
PARAM_VALUE 0 buf->migf->mvdev->mdev->cmd.vars.unprivileged_sem.first_waiter->up 0-1
PARAM_VALUE 0 buf->migf->mvdev->mdev_detach 0-1
BUF_SIZE 0 buf (-1),88
BUF_SIZE 0 buf (-1),88
DATA_SOURCE 0 buf r mlx5vf_mig_file_get_stop_copy_buf
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 buf->npages
LOCK2 &mvdev->state_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mlx5vf_pci_core_device)->state_mutex

drivers/vfio/pci/mlx5/main.c mlx5vf_pci_save_device_inc_data() -> mlx5vf_put_data_buffer()

Type Parameter Key Value
PARAM_VALUE 0 buf 4096-ptr_max
PARAM_VALUE 0 buf->migf 4096-ptr_max
PARAM_VALUE 0 buf->migf->buf 4096-ptr_max
PARAM_VALUE 0 buf->migf->mvdev->mdev->cmd.vars.throttle_sem.first_waiter->up 0-1
PARAM_VALUE 0 buf->migf->mvdev->mdev->cmd.vars.unprivileged_sem.first_waiter->up 0-1
PARAM_VALUE 0 buf->migf->mvdev->mdev_detach 0-1
BUF_SIZE 0 buf (-1),88
BUF_SIZE 0 buf (-1),88
DATA_SOURCE 0 buf r mlx5vf_mig_file_get_stop_copy_buf
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 buf->npages
LOCK2 &mvdev->state_mutex
TYPE_LOCK (struct mlx5vf_pci_core_device)->state_mutex

drivers/vfio/pci/mlx5/main.c mlx5vf_pci_step_device_state_locked() -> mlx5vf_put_data_buffer()

Type Parameter Key Value
PARAM_VALUE 0 buf 4096-ptr_max
PARAM_VALUE 0 buf->dma_dir 2-3
PARAM_VALUE 0 buf->migf 4096-ptr_max
PARAM_VALUE 0 buf->migf->mvdev->mdev->cmd.vars.throttle_sem.first_waiter->up 0-1
PARAM_VALUE 0 buf->migf->mvdev->mdev->cmd.vars.unprivileged_sem.first_waiter->up 0-1
PARAM_VALUE 0 buf->migf->mvdev->mdev_detach 0-1
BUF_SIZE 0 buf (-1),88
BUF_SIZE 0 buf (-1),88
CAPPED_DATA 0 buf->dma_dir 1
DATA_SOURCE 0 buf r mlx5vf_get_data_buffer
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 buf->npages
LOCK2 &mvdev->state_mutex
TYPE_LOCK (struct mlx5vf_pci_core_device)->state_mutex

drivers/vfio/pci/mlx5/main.c mlx5vf_precopy_ioctl() -> mlx5vf_put_data_buffer()

Type Parameter Key Value
PARAM_VALUE 0 buf 4096-ptr_max
PARAM_VALUE 0 buf->dma_dir 2-3
PARAM_VALUE 0 buf->migf 4096-ptr_max
PARAM_VALUE 0 buf->migf->mvdev->mdev->cmd.vars.throttle_sem.first_waiter->up 0-1
PARAM_VALUE 0 buf->migf->mvdev->mdev->cmd.vars.unprivileged_sem.first_waiter->up 0-1
PARAM_VALUE 0 buf->migf->mvdev->mdev->pdev->bus->self->link_bwctrl->cdev 0,4096-s64max
PARAM_VALUE 0 buf->migf->mvdev->mdev_detach 0-1
BUF_SIZE 0 buf (-1),88
BUF_SIZE 0 buf (-1),88
CAPPED_DATA 0 buf->dma_dir 1
DATA_SOURCE 0 buf r mlx5vf_get_data_buffer
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 buf->npages
LOCK2 &mvdev->state_mutex
TYPE_LOCK (struct mlx5vf_pci_core_device)->state_mutex

drivers/vfio/pci/mlx5/main.c mlx5vf_prep_stop_copy() -> mlx5vf_put_data_buffer()

Type Parameter Key Value
PARAM_VALUE 0 buf 1-u64max
NOCHECK_CALL
LOCK2 &mvdev->state_mutex
TYPE_LOCK (struct mlx5vf_pci_core_device)->state_mutex

drivers/vfio/pci/mlx5/main.c mlx5vf_prep_stop_copy() -> mlx5vf_put_data_buffer()

Type Parameter Key Value
PARAM_VALUE 0 buf 1-u64max
NOCHECK_CALL
LOCK2 &mvdev->state_mutex
TYPE_LOCK (struct mlx5vf_pci_core_device)->state_mutex

drivers/vfio/pci/mlx5/cmd.c mlx5vf_cmd_save_vhca_state() -> mlx5vf_put_data_buffer()

Type Parameter Key Value
PARAM_VALUE 0 buf 1-u64max
PARAM_VALUE 0 buf->migf->mvdev->mdev->cmd.vars.throttle_sem.first_waiter->up 0-1
PARAM_VALUE 0 buf->migf->mvdev->mdev->cmd.vars.unprivileged_sem.first_waiter->up 0-1
PARAM_VALUE 0 buf->migf->mvdev->mdev_detach 0-1
BUF_SIZE 0 buf (-1),88
BUF_SIZE 0 buf (-1),88
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 buf->npages
LOCK2 &mvdev->state_mutex
TYPE_LOCK (struct mlx5vf_pci_core_device)->state_mutex

drivers/vfio/pci/mlx5/cmd.c mlx5vf_mig_file_cleanup_cb() -> mlx5vf_put_data_buffer()

Type Parameter Key Value
NOCHECK_CALL
LOCK2 &migf->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mlx5_vf_migration_file)->lock

drivers/vfio/pci/mlx5/cmd.c mlx5vf_mig_file_cleanup_cb() -> mlx5vf_put_data_buffer()

Type Parameter Key Value
PARAM_VALUE 0 buf 1-u64max
NOCHECK_CALL
LOCK2 &migf->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mlx5_vf_migration_file)->lock