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) {} /* 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); -- 2.8.0.rc3.226.g39d4020
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);
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>
Possibly Parallel 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