On 10/1/2026 11:50 AM, Mathieu Poirier wrote:
> On Sun, Sep 27, 2026 at 10:55:59AM +0200, Francesco Valla wrote:
>> Hi Tanmay,
>>
>> On Thu, Sep 24, 2026 at 01:59:02PM -0700, Tanmay Shah wrote:
>>> The virtio device is removed when the remoteproc device is removed. The
>>> driver should issue reset on the virtio device so the remote can do
>>> corresponding cleanup.
>>>
>>
>> Shouldn't be the driver, and not the transport, the one that calls
>> virtio_reset_device()?
>
> Function rproc_remove_virtio_dev() calls unregister_virtio_device(), which
> calls
> device_unregister(), which should end up calling virtio_bus.remove(), in this
> case virtio_dev_remove(). virtio_dev_remove() calls drv->remove(). If we
> take
> the RPMSG driver, rpmsg_remove() calls virtio_reset_device(), so explicitly
> resetting devices as part of rproc_remove_virtio_dev() is not needed.
>
> Tanmay, have you observed a scenario where the above isn't working?
>
Nope. I didn't send the patch based on any practical scenario. This is
an old patch that I had used at the time to issue reset on shutdown. I
missed that the driver is already doing it. Probably my assessment was
incorrect at the time. I think we should remove this patch.
>>
>>> Fixes: 7a186941626d ("remoteproc: remove the single rpmsg vdev limitation")
>>> Signed-off-by: Tanmay Shah <[email protected]>
>>> ---
>>> drivers/remoteproc/remoteproc_virtio.c | 2 ++
>>> 1 file changed, 2 insertions(+)
>>>
>>> diff --git a/drivers/remoteproc/remoteproc_virtio.c
>>> b/drivers/remoteproc/remoteproc_virtio.c
>>> index d5e9ff045a28..1cb0ee0ea656 100644
>>> --- a/drivers/remoteproc/remoteproc_virtio.c
>>> +++ b/drivers/remoteproc/remoteproc_virtio.c
>>> @@ -469,6 +469,8 @@ static int rproc_remove_virtio_dev(struct device *dev,
>>> void *data)
>>> {
>>> struct virtio_device *vdev = dev_to_virtio(dev);
>>>
>>> + virtio_reset_device(vdev);
>>> +
>>> unregister_virtio_device(vdev);
>>> return 0;
>>> }
>>>
>>> base-commit: 5f639b3018c0026a5341949724b4b921cf3a3d5d
>>> --
>>> 2.43.0
>>>