This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: ddbridge: fix deinit order in case of failure in ddb_init()
Author:  Daniel Scheller <[email protected]>
Date:    Sun Dec 17 10:40:47 2017 -0500

In ddb_init(), the deinitialization sequence isn't correct when handling
errors, and could even lead to a memleak depending on where things failed.
Fix the deinit order.

Signed-off-by: Daniel Scheller <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>

 drivers/media/pci/ddbridge/ddbridge-core.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

---

diff --git a/drivers/media/pci/ddbridge/ddbridge-core.c 
b/drivers/media/pci/ddbridge/ddbridge-core.c
index c2013d170c99..e68ca00e73d8 100644
--- a/drivers/media/pci/ddbridge/ddbridge-core.c
+++ b/drivers/media/pci/ddbridge/ddbridge-core.c
@@ -3279,7 +3279,7 @@ int ddb_init(struct ddb *dev)
        ddb_init_boards(dev);
 
        if (ddb_i2c_init(dev) < 0)
-               goto fail;
+               goto fail1;
        ddb_ports_init(dev);
        if (ddb_buffers_alloc(dev) < 0) {
                dev_info(dev->dev, "Could not allocate buffer memory\n");
@@ -3297,14 +3297,14 @@ int ddb_init(struct ddb *dev)
        return 0;
 
 fail3:
-       ddb_ports_detach(dev);
        dev_err(dev->dev, "fail3\n");
-       ddb_ports_release(dev);
+       ddb_ports_detach(dev);
+       ddb_buffers_free(dev);
 fail2:
        dev_err(dev->dev, "fail2\n");
-       ddb_buffers_free(dev);
+       ddb_ports_release(dev);
        ddb_i2c_release(dev);
-fail:
+fail1:
        dev_err(dev->dev, "fail1\n");
        return -1;
 }

_______________________________________________
linuxtv-commits mailing list
[email protected]
https://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to