cleanup all resource allocated by virtio_mmio_probe.

Signed-off-by: weiping zhang <[email protected]>
---
 drivers/virtio/virtio_mmio.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c
index f984510..5e2ca34 100644
--- a/drivers/virtio/virtio_mmio.c
+++ b/drivers/virtio/virtio_mmio.c
@@ -599,8 +599,15 @@ static int virtio_mmio_probe(struct platform_device *pdev)
 static int virtio_mmio_remove(struct platform_device *pdev)
 {
        struct virtio_mmio_device *vm_dev = platform_get_drvdata(pdev);
+       struct resource *mem;
 
        unregister_virtio_device(&vm_dev->vdev);
+       iounmap(vm_dev->base);
+       mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+       if (mem)
+               devm_release_mem_region(&pdev->dev, mem->start,
+                       resource_size(mem));
+       devm_kfree(&pdev->dev, vm_dev);
 
        return 0;
 }
-- 
2.9.4

_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to