]> git.baikalelectronics.ru Git - kernel.git/commit
vdpa/mlx5: Fix suspend/resume index restoration
authorEli Cohen <elic@nvidia.com>
Thu, 8 Apr 2021 09:10:47 +0000 (12:10 +0300)
committerMichael S. Tsirkin <mst@redhat.com>
Fri, 9 Apr 2021 16:08:28 +0000 (12:08 -0400)
commitccbc1add29a870622810520ab3f94cc163db1300
treef8a021c94b2f473770d42f4909198875c588db3e
parent7b659f6f689c6d563df5a40999de0c6727c5ce6a
vdpa/mlx5: Fix suspend/resume index restoration

When we suspend the VM, the VDPA interface will be reset. When the VM is
resumed again, clear_virtqueues() will clear the available and used
indices resulting in hardware virqtqueue objects becoming out of sync.
We can avoid this function alltogether since qemu will clear them if
required, e.g. when the VM went through a reboot.

Moreover, since the hw available and used indices should always be
identical on query and should be restored to the same value same value
for virtqueues that complete in order, we set the single value provided
by set_vq_state(). In get_vq_state() we return the value of hardware
used index.

Fixes: 55a3302bfd16 ("vdpa/mlx5: Restore the hardware used index after change map")
Fixes: 89495935b0eb ("vdpa/mlx5: Add VDPA driver for supported mlx5 devices")
Signed-off-by: Eli Cohen <elic@nvidia.com>
Link: https://lore.kernel.org/r/20210408091047.4269-6-elic@nvidia.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
drivers/vdpa/mlx5/net/mlx5_vnet.c