• Eric Auger's avatar
    vhost: Allow null msg.size on VHOST_IOTLB_INVALIDATE · ca50ec37
    Eric Auger authored
    Commit e2ae38cf ("vhost: fix hung thread due to erroneous iotlb
    entries") Forbade vhost iotlb msg with null size to prevent entries
    with size = start = 0 and last = ULONG_MAX to end up in the iotlb.
    
    Then commit 95932ab2 ("vhost: allow batching hint without size")
    only applied the check for VHOST_IOTLB_UPDATE and VHOST_IOTLB_INVALIDATE
    message types to fix a regression observed with batching hit.
    
    Still, the introduction of that check introduced a regression for
    some users attempting to invalidate the whole ULONG_MAX range by
    setting the size to 0. This is the case with qemu/smmuv3/vhost
    integration which does not work anymore. It Looks safe to partially
    revert the original commit and allow VHOST_IOTLB_INVALIDATE messages
    with null size. vhost_iotlb_del_range() will compute a correct end
    iova. Same for vhost_vdpa_iotlb_unmap().
    Signed-off-by: default avatarEric Auger <eric.auger@redhat.com>
    Fixes: e2ae38cf ("vhost: fix hung thread due to erroneous iotlb entries")
    Cc: stable@vger.kernel.org # v5.17+
    Acked-by: default avatarJason Wang <jasowang@redhat.com>
    Message-Id: <20230927140544.205088-1-eric.auger@redhat.com>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    ca50ec37
vhost.c 69.5 KB