From: Markus Elfring <elfr...@users.sourceforge.net>
Date: Wed, 19 Nov 2014 23:20:51 +0100

The release_firmware() function was called in some cases by the
m88ds3103_init() function during error handling even if the passed variable
contained still a null pointer. This implementation detail could be improved
by the introduction of another jump label.

Signed-off-by: Markus Elfring <elfr...@users.sourceforge.net>
---
 drivers/media/dvb-frontends/m88ds3103.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/media/dvb-frontends/m88ds3103.c 
b/drivers/media/dvb-frontends/m88ds3103.c
index e88f0f6..82da715 100644
--- a/drivers/media/dvb-frontends/m88ds3103.c
+++ b/drivers/media/dvb-frontends/m88ds3103.c
@@ -590,7 +590,7 @@ static int m88ds3103_init(struct dvb_frontend *fe)
 
        ret = m88ds3103_wr_reg(priv, 0xb2, 0x01);
        if (ret)
-               goto err;
+               goto error_fw_release;
 
        for (remaining = fw->size; remaining > 0;
                        remaining -= (priv->cfg->i2c_wr_max - 1)) {
@@ -604,13 +604,13 @@ static int m88ds3103_init(struct dvb_frontend *fe)
                        dev_err(&priv->i2c->dev,
                                        "%s: firmware download failed=%d\n",
                                        KBUILD_MODNAME, ret);
-                       goto err;
+                       goto error_fw_release;
                }
        }
 
        ret = m88ds3103_wr_reg(priv, 0xb2, 0x00);
        if (ret)
-               goto err;
+               goto error_fw_release;
 
        release_firmware(fw);
        fw = NULL;
@@ -636,9 +636,10 @@ skip_fw_download:
        priv->warm = true;
 
        return 0;
-err:
-       release_firmware(fw);
 
+error_fw_release:
+       release_firmware(fw);
+err:
        dev_dbg(&priv->i2c->dev, "%s: failed=%d\n", __func__, ret);
        return ret;
 }
-- 
2.1.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to