I think not. In virtio_pci_common, vp_dev is allocated by kzalloc so a kfree is needed. Here vm_dev is allocated by devm_kmalloc which is "automatically freed on driver detach" from the comment (drivers/base/devres.c:769).
On Thu, Nov 24, 2016 at 6:37 PM, Jason Wang <[email protected]> wrote: > > > On 2016年11月24日 08:31, Yuan Liu wrote: > >> From: Yuan Liu <[email protected]> >> >> Fix a warning thrown from virtio_mmio_remove(): >> Device 'virtio0' does not have a release() function >> >> The fix is according to virtio_pci_probe() of >> drivers/virtio/virtio_pci_common.c >> >> Signed-off-by: Yuan Liu <[email protected]> >> --- >> drivers/virtio/virtio_mmio.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c >> index 48bfea9..d47a2fc 100644 >> --- a/drivers/virtio/virtio_mmio.c >> +++ b/drivers/virtio/virtio_mmio.c >> @@ -489,6 +489,7 @@ static const struct virtio_config_ops >> virtio_mmio_config_ops = { >> }; >> +static void virtio_mmio_release_dev_empty(struct device *_d) {} >> > > Do we need to free vm_dev here? > > > /* Platform device */ >> @@ -511,6 +512,7 @@ static int virtio_mmio_probe(struct platform_device >> *pdev) >> return -ENOMEM; >> vm_dev->vdev.dev.parent = &pdev->dev; >> + vm_dev->vdev.dev.release = virtio_mmio_release_dev_empty; >> vm_dev->vdev.config = &virtio_mmio_config_ops; >> vm_dev->pdev = pdev; >> INIT_LIST_HEAD(&vm_dev->virtqueues); >> > >
_______________________________________________ Virtualization mailing list [email protected] https://lists.linuxfoundation.org/mailman/listinfo/virtualization
