]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
[media] mn88472: One function call less in mn88472_init() after error detection
authorMarkus Elfring <elfring@users.sourceforge.net>
Sun, 1 Feb 2015 18:34:37 +0000 (15:34 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Wed, 1 Apr 2015 09:22:27 +0000 (06:22 -0300)
The release_firmware() function was called in three cases by the mn88472_init()
function during error handling even if the passed variable "fw" 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/staging/media/mn88472/mn88472.c

index ce14cb287594a062b3ee3909ece84bc3d044bd09..219a7d1db8d4a4791803d6730ffe875246faae7b 100644 (file)
@@ -270,7 +270,7 @@ static int mn88472_init(struct dvb_frontend *fe)
 
        ret = regmap_write(dev->regmap[0], 0xf5, 0x03);
        if (ret)
-               goto err;
+               goto firmware_release;
 
        for (remaining = fw->size; remaining > 0;
                        remaining -= (dev->i2c_wr_max - 1)) {
@@ -283,13 +283,13 @@ static int mn88472_init(struct dvb_frontend *fe)
                if (ret) {
                        dev_err(&client->dev,
                                        "firmware download failed=%d\n", ret);
-                       goto err;
+                       goto firmware_release;
                }
        }
 
        ret = regmap_write(dev->regmap[0], 0xf5, 0x00);
        if (ret)
-               goto err;
+               goto firmware_release;
 
        release_firmware(fw);
        fw = NULL;
@@ -298,9 +298,9 @@ static int mn88472_init(struct dvb_frontend *fe)
        dev->warm = true;
 
        return 0;
-err:
+firmware_release:
        release_firmware(fw);
-
+err:
        dev_dbg(&client->dev, "failed=%d\n", ret);
        return ret;
 }