Lines Matching refs:vhca_buf

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