Re: [PATCH v10 10/17] virtio: Handle device reset failure in register_virtio_device()

From: Yongji Xie
Date: Wed Aug 04 2021 - 05:08:06 EST


On Wed, Aug 4, 2021 at 4:54 PM Jason Wang <jasowang@xxxxxxxxxx> wrote:
>
>
> 在 2021/8/4 下午4:50, Yongji Xie 写道:
> > On Wed, Aug 4, 2021 at 4:32 PM Jason Wang <jasowang@xxxxxxxxxx> wrote:
> >>
> >> 在 2021/8/3 下午5:38, Yongji Xie 写道:
> >>> On Tue, Aug 3, 2021 at 4:09 PM Jason Wang <jasowang@xxxxxxxxxx> wrote:
> >>>> 在 2021/7/29 下午3:34, Xie Yongji 写道:
> >>>>> The device reset may fail in virtio-vdpa case now, so add checks to
> >>>>> its return value and fail the register_virtio_device().
> >>>> So the reset() would be called by the driver during remove as well, or
> >>>> is it sufficient to deal only with the reset during probe?
> >>>>
> >>> Actually there is no way to handle failure during removal. And it
> >>> should be safe with the protection of software IOTLB even if the
> >>> reset() fails.
> >>>
> >>> Thanks,
> >>> Yongji
> >>
> >> If this is true, does it mean we don't even need to care about reset
> >> failure?
> >>
> > But we need to handle the failure in the vhost-vdpa case, isn't it?
>
>
> Yes, but:
>
> - This patch is for virtio not for vhost, if we don't care virtio, we
> can avoid the changes
> - For vhost, there could be two ways probably:
>
> 1) let the set_status to report error
> 2) require userspace to re-read for status
>
> It looks to me you want to go with 1) and I'm not sure whether or not
> it's too late to go with 2).
>

Looks like 2) can't work if reset failure happens in
vhost_vdpa_release() and vhost_vdpa_open().

Thanks,
Yongji