vhost-vsock leaves the device IOTLB attached when userspace clears VIRTIO_F_ACCESS_PLATFORM. It also replaces an existing IOTLB with an empty one whenever a later feature update keeps ACCESS_PLATFORM enabled.
Patch 1 adds a common vhost helper that detaches the device IOTLB from all virtqueues, clears their metadata caches, drops queued IOTLB miss messages, and frees the old table after all virtqueues have released their pointers. Patch 2 uses the helper when vhost-vsock clears ACCESS_PLATFORM. The acked_features update remains in the vhost-vsock-specific loop. Patch 3 avoids replacing an existing IOTLB when ACCESS_PLATFORM remains enabled across a feature update. Changes since v3: - move the IOTLB teardown helper from vhost-vsock into common vhost code - keep acked_features updates in the backend-specific loop - add the common helper as a separate first patch Jia Jia (3): vhost: add helper to clear device IOTLB vhost/vsock: discard IOTLB when ACCESS_PLATFORM is cleared vhost/vsock: keep IOTLB across feature updates drivers/vhost/vhost.c | 24 ++++++++++++++++++++++++ drivers/vhost/vhost.h | 1 + drivers/vhost/vsock.c | 7 ++++++- 3 files changed, 31 insertions(+), 1 deletion(-) -- 2.34.1

