[media] si2157: One function call less in si2157_init() after error
authorMarkus Elfring <elfring@users.sourceforge.net>
Sun, 30 Nov 2014 19:48:24 +0000 (16:48 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Thu, 4 Dec 2014 17:28:51 +0000 (15:28 -0200)
The release_firmware() function was called in some cases by the si2157_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 <elfring@users.sourceforge.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/tuners/si2157.c

index e17ab1f..2180de9 100644 (file)
@@ -157,7 +157,7 @@ static int si2157_init(struct dvb_frontend *fe)
                dev_err(&s->client->dev, "firmware file '%s' is invalid\n",
                                fw_file);
                ret = -EINVAL;
-               goto err;
+               goto fw_release_exit;
        }
 
        dev_info(&s->client->dev, "downloading firmware from file '%s'\n",
@@ -173,7 +173,7 @@ static int si2157_init(struct dvb_frontend *fe)
                        dev_err(&s->client->dev,
                                        "firmware download failed=%d\n",
                                        ret);
-                       goto err;
+                       goto fw_release_exit;
                }
        }
 
@@ -195,9 +195,9 @@ warm:
        s->active = true;
        return 0;
 
-err:
+fw_release_exit:
        release_firmware(fw);
-
+err:
        dev_dbg(&s->client->dev, "failed=%d\n", ret);
        return ret;
 }