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

From: Jason Wang
Date: Thu Aug 05 2021 - 03:12:57 EST

在 2021/8/4 下午5:07, Yongji Xie 写道:
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.

If this is true, does it mean we don't even need to care about reset

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().

Yes, you're right.