]> 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)
commit08b50929e40fc644349a828ff8a70bee5bb91d8c
treef8a021c94b2f473770d42f4909198875c588db3e
parentda76cf5508c48219d9431b2b2c87b1d227b86895
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: df5f83becaa1 ("vdpa/mlx5: Restore the hardware used index after change map")
Fixes: 707e0f8d9b65 ("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