vhost/net: Clear the pending messages when the backend is removed
authorEric Auger <eric.auger@redhat.com>
Tue, 17 Jan 2023 15:15:18 +0000 (10:15 -0500)
committerMichael S. Tsirkin <mst@redhat.com>
Fri, 27 Jan 2023 11:18:41 +0000 (06:18 -0500)
commit9526f9a2b762af16be94a72aca5d65c677d28f50
tree867ef7feabc780255ac03d53f2afc3b036513fdd
parent2241ab53cbb5cdb08a6b2d4688feb13971058f65
vhost/net: Clear the pending messages when the backend is removed

When the vhost iotlb is used along with a guest virtual iommu
and the guest gets rebooted, some MISS messages may have been
recorded just before the reboot and spuriously executed by
the virtual iommu after the reboot.

As vhost does not have any explicit reset user API,
VHOST_NET_SET_BACKEND looks a reasonable point where to clear
the pending messages, in case the backend is removed.

Export vhost_clear_msg() and call it in vhost_net_set_backend()
when fd == -1.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Suggested-by: Jason Wang <jasowang@redhat.com>
Fixes: 6b1e6cc7855b0 ("vhost: new device IOTLB API")
Message-Id: <20230117151518.44725-3-eric.auger@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/vhost/net.c
drivers/vhost/vhost.c
drivers/vhost/vhost.h