Hi Michael, thanks for reviewing:
On jue, ago 11 2022 at 09:32:05, "Michael S. Tsirkin" <[email protected]> wrote:
> which tree is this for?
>
> Applying: docs: driver-api: virtio: virtio on Linux
> error: sha1 information is lacking or useless (MAINTAINERS).
> error: could not build fake ancestor
> Patch failed at 0001 docs: driver-api: virtio: virtio on Linux
linux-next, as stated in the cover letter:
Tested on linux-next (next-20220802)
I just verified that the patch also applies to the vhost tree
(linux-next branch). Where did you test it?
>> + buf = virtqueue_get_buf(dev->vq, &len);
>> + /* spurious callback? */
>> + if (!buf)
>> + return;
>
> most drivers need to do this in a loop, this code is only valid if
> there's just 1 buf in flight - unusual.
That's a driver-specific consideration and this is supposed to be the
simplest possible driver skeleton, but ok.
>> + static int virtio_dummy_probe(struct virtio_device *vdev)
>> + {
>> + struct virtio_dummy_dev *dev = NULL;
>> +
>> + /* initialize device data */
>> + dev = kzalloc(sizeof(struct virtio_dummy_dev), GFP_KERNEL);
>
>
> I dislike how we set dev to NULL and immediately to a different value
> just below.
This is a matter of style, I think. There are plenty of examples of this
in the kernel code, but I don't mind changing it.
> what is missing here is registration with Linux core.
Isn't that supposed to be done by module_virtio_driver()?
> depending on device you might need a call to device_ready, too.
I already explained below that this is done by default after probe()
(see virtio_dev_probe()). virtio_device_ready() is supposed to be useful
only if you need to use the vqs in the probe function.
>> + /*
>> + * Disable vq interrupts: equivalent to
>> + * vdev->config->reset(vdev)
>> + */
>> + virtio_reset_device(vdev);
>> +
>
> you highly likely need to detach unused buffers from vqs here.
Ack.
> let's be a bit clearer here that they must be enabled before add_buf
> triggers.
Ok.
> maybe clarify that they can still trigger even if enabled.
> if you want to disable reliable you have to reset the device
> or the vq.
I'll check that out, thanks.
Cheers,
Ricardo
_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/virtualization