Lines Matching refs:async_data

607 			      struct mlx5vf_async_data *async_data)  in mlx5vf_save_callback_complete()  argument
609 kvfree(async_data->out); in mlx5vf_save_callback_complete()
616 struct mlx5vf_async_data *async_data = container_of(_work, in mlx5vf_mig_file_cleanup_cb() local
618 struct mlx5_vf_migration_file *migf = container_of(async_data, in mlx5vf_mig_file_cleanup_cb()
619 struct mlx5_vf_migration_file, async_data); in mlx5vf_mig_file_cleanup_cb()
622 if (async_data->status) { in mlx5vf_mig_file_cleanup_cb()
623 mlx5vf_put_data_buffer(async_data->buf); in mlx5vf_mig_file_cleanup_cb()
624 if (async_data->header_buf) in mlx5vf_mig_file_cleanup_cb()
625 mlx5vf_put_data_buffer(async_data->header_buf); in mlx5vf_mig_file_cleanup_cb()
626 if (!async_data->stop_copy_chunk && in mlx5vf_mig_file_cleanup_cb()
627 async_data->status == MLX5_CMD_STAT_BAD_RES_STATE_ERR) in mlx5vf_mig_file_cleanup_cb()
634 mlx5vf_save_callback_complete(migf, async_data); in mlx5vf_mig_file_cleanup_cb()
668 struct mlx5vf_async_data *async_data = container_of(context, in mlx5vf_save_callback() local
670 struct mlx5_vf_migration_file *migf = container_of(async_data, in mlx5vf_save_callback()
671 struct mlx5_vf_migration_file, async_data); in mlx5vf_save_callback()
679 !async_data->stop_copy_chunk; in mlx5vf_save_callback()
681 image_size = MLX5_GET(save_vhca_state_out, async_data->out, in mlx5vf_save_callback()
683 if (async_data->buf->stop_copy_chunk_num) in mlx5vf_save_callback()
685 async_data->out, next_required_umem_size); in mlx5vf_save_callback()
686 stop_copy_last_chunk = async_data->stop_copy_chunk && in mlx5vf_save_callback()
688 if (async_data->header_buf) { in mlx5vf_save_callback()
689 status = add_buf_header(async_data->header_buf, image_size, in mlx5vf_save_callback()
694 async_data->buf->length = image_size; in mlx5vf_save_callback()
695 async_data->buf->start_pos = migf->max_pos; in mlx5vf_save_callback()
696 migf->max_pos += async_data->buf->length; in mlx5vf_save_callback()
698 list_add_tail(&async_data->buf->buf_elm, &migf->buf_list); in mlx5vf_save_callback()
699 if (async_data->buf->stop_copy_chunk_num) { in mlx5vf_save_callback()
719 (async_data->buf->stop_copy_chunk_num % MAX_NUM_CHUNKS) + 1, in mlx5vf_save_callback()
721 mlx5vf_save_callback_complete(migf, async_data); in mlx5vf_save_callback()
728 status = MLX5_GET(save_vhca_state_out, async_data->out, status); in mlx5vf_save_callback()
731 async_data->out); in mlx5vf_save_callback()
734 async_data->status = status; in mlx5vf_save_callback()
735 queue_work(migf->mvdev->cb_wq, &async_data->work); in mlx5vf_save_callback()
746 struct mlx5vf_async_data *async_data; in mlx5vf_cmd_save_vhca_state() local
778 async_data = &migf->async_data; in mlx5vf_cmd_save_vhca_state()
779 async_data->buf = buf; in mlx5vf_cmd_save_vhca_state()
780 async_data->stop_copy_chunk = (!track && !pre_copy_cleanup); in mlx5vf_cmd_save_vhca_state()
781 async_data->out = kvzalloc(out_size, GFP_KERNEL); in mlx5vf_cmd_save_vhca_state()
782 if (!async_data->out) { in mlx5vf_cmd_save_vhca_state()
787 if (async_data->stop_copy_chunk) { in mlx5vf_cmd_save_vhca_state()
807 if (async_data->stop_copy_chunk) in mlx5vf_cmd_save_vhca_state()
810 async_data->header_buf = header_buf; in mlx5vf_cmd_save_vhca_state()
813 async_data->out, in mlx5vf_cmd_save_vhca_state()
815 &async_data->cb_work); in mlx5vf_cmd_save_vhca_state()
826 kvfree(async_data->out); in mlx5vf_cmd_save_vhca_state()