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 <jasowang at redhat.com> wrote:> > > On 2016?11?24? 08:31, Yuan Liu wrote: > >> From: Yuan Liu <liuyuan at google.com> >> >> 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 <liuyuan at google.com> >> --- >> 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); >> > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.linuxfoundation.org/pipermail/virtualization/attachments/20161124/a2c0c98b/attachment-0001.html>
On 2016?11?25? 10:47, Yuan Liu wrote:> 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).I see, thanks. Reviewed-by: Jason Wang <jasowang at redhat.com>> > On Thu, Nov 24, 2016 at 6:37 PM, Jason Wang <jasowang at redhat.com > <mailto:jasowang at redhat.com>> wrote: > > > > On 2016?11?24? 08:31, Yuan Liu wrote: > > From: Yuan Liu <liuyuan at google.com <mailto:liuyuan at google.com>> > > 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 <liuyuan at google.com > <mailto:liuyuan at google.com>> > --- > 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); > > >
Maybe Matching Threads
- [PATCH] virtio_mmio: Set dev.release() to avoid warning
- [PATCH] virtio_mmio: Set dev.release() to avoid warning
- [PATCH] virtio_mmio: Set dev.release() to avoid warning
- [PATCH] virtio_mmio: Set dev.release() to avoid warning
- [PATCH] virtio_mmio: Set dev.release() to avoid warning