Lines Matching defs:vhca_buf
161 static ssize_t mlx5vf_buf_read(struct mlx5_vhca_data_buffer *vhca_buf,
169 vhca_buf->start_pos + vhca_buf->length - *pos, *len);
177 offset = *pos - vhca_buf->start_pos;
180 page = mlx5vf_get_migration_page(vhca_buf, offset);
196 if (*pos >= vhca_buf->start_pos + vhca_buf->length) {
197 spin_lock_irq(&vhca_buf->migf->list_lock);
198 list_del_init(&vhca_buf->buf_elm);
199 list_add_tail(&vhca_buf->buf_elm, &vhca_buf->migf->avail_list);
200 spin_unlock_irq(&vhca_buf->migf->list_lock);
210 struct mlx5_vhca_data_buffer *vhca_buf;
238 vhca_buf = mlx5vf_get_data_buff_from_pos(migf, *pos,
260 if (!vhca_buf) {
265 count = mlx5vf_buf_read(vhca_buf, &buf, &len, pos);
609 mlx5vf_append_page_to_mig_buf(struct mlx5_vhca_data_buffer *vhca_buf,
620 offset = *pos - vhca_buf->start_pos;
623 page = mlx5vf_get_migration_page(vhca_buf, offset - page_offset);
637 vhca_buf->length += page_len;
642 mlx5vf_resume_read_image_no_header(struct mlx5_vhca_data_buffer *vhca_buf,
652 if (vhca_buf->allocated_length < requested_length) {
654 vhca_buf,
655 DIV_ROUND_UP(requested_length - vhca_buf->allocated_length,
662 ret = mlx5vf_append_page_to_mig_buf(vhca_buf, buf, len, pos,
673 struct mlx5_vhca_data_buffer *vhca_buf,
681 to_copy = min_t(size_t, *len, image_size - vhca_buf->length);
684 ret = mlx5vf_append_page_to_mig_buf(vhca_buf, buf, &to_copy, pos,
691 if (vhca_buf->length == image_size) {
702 struct mlx5_vhca_data_buffer *vhca_buf,
711 required_data = migf->record_size - vhca_buf->length;
715 ret = mlx5vf_append_page_to_mig_buf(vhca_buf, buf, &to_copy, pos,
722 if (vhca_buf->length == migf->record_size) {
728 page = mlx5vf_get_migration_page(vhca_buf, 0);
744 vhca_buf->length = 0;
752 struct mlx5_vhca_data_buffer *vhca_buf,
763 sizeof(struct mlx5_vf_migration_header) - vhca_buf->length);
764 page = mlx5vf_get_migration_page(vhca_buf, 0);
768 ret = copy_from_user(to_buff + vhca_buf->length, *buf, copy_len);
778 vhca_buf->length += copy_len;
779 if (vhca_buf->length == sizeof(struct mlx5_vf_migration_header)) {
810 migf->max_pos += vhca_buf->length;
811 vhca_buf->length = 0;
823 struct mlx5_vhca_data_buffer *vhca_buf = migf->buf;
884 if (vhca_buf->allocated_length < size) {
885 mlx5vf_free_data_buffer(vhca_buf);
895 vhca_buf = migf->buf;
898 vhca_buf->start_pos = migf->max_pos;
903 ret = mlx5vf_resume_read_image_no_header(vhca_buf,
910 ret = mlx5vf_resume_read_image(migf, vhca_buf,
917 ret = mlx5vf_cmd_load_vhca_state(migf->mvdev, migf, vhca_buf);
925 vhca_buf->length = 0;