vdpa/mlx5: Fix mr->initialized semantics
authorDragos Tatulea <dtatulea@nvidia.com>
Wed, 2 Aug 2023 17:12:18 +0000 (20:12 +0300)
committerMichael S. Tsirkin <mst@redhat.com>
Thu, 10 Aug 2023 19:24:28 +0000 (15:24 -0400)
commit9ee811009ad8f87982b69e61d07447d12233ad01
tree754227fa9bcc18d91e370c73d9ed1de833bdc666
parent3fe024193340b225d1fd410d78c495434a9d68e0
vdpa/mlx5: Fix mr->initialized semantics

The mr->initialized flag is shared between the control vq and data vq
part of the mr init/uninit. But if the control vq and data vq get placed
in different ASIDs, it can happen that initializing the control vq will
prevent the data vq mr from being initialized.

This patch consolidates the control and data vq init parts into their
own init functions. The mr->initialized will now be used for the data vq
only. The control vq currently doesn't need a flag.

The uninitializing part is also taken care of: mlx5_vdpa_destroy_mr got
split into data and control vq functions which are now also ASID aware.

Fixes: 8fcd20c30704 ("vdpa/mlx5: Support different address spaces for control and data")
Signed-off-by: Dragos Tatulea <dtatulea@nvidia.com>
Reviewed-by: Eugenio PĂ©rez <eperezma@redhat.com>
Reviewed-by: Gal Pressman <gal@nvidia.com>
Message-Id: <20230802171231.11001-3-dtatulea@nvidia.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
drivers/vdpa/mlx5/core/mlx5_vdpa.h
drivers/vdpa/mlx5/core/mr.c