aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Elfring <elfring@users.sourceforge.net>2014-11-19 17:20:51 -0500
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2014-11-25 09:07:33 -0500
commit5ed0cf8800c4da58e1e501f7143154897d34e9c2 (patch)
tree547e529be54c117f71c45acf91fcbac87b12da8c
parent9bc2dd7ec0db76c7159d8124cd2bf8d1ff2a2ede (diff)
[media] m88ds3103: One function call less in m88ds3103_init() after error detection
GIT_AUTHOR_DATE=1416472158 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 <elfring@users.sourceforge.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
-rw-r--r--drivers/media/dvb-frontends/m88ds3103.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/media/dvb-frontends/m88ds3103.c b/drivers/media/dvb-frontends/m88ds3103.c
index 843e669a3d7c..ba4ee0b48834 100644
--- a/drivers/media/dvb-frontends/m88ds3103.c
+++ b/drivers/media/dvb-frontends/m88ds3103.c
@@ -640,7 +640,7 @@ static int m88ds3103_init(struct dvb_frontend *fe)
640 640
641 ret = m88ds3103_wr_reg(priv, 0xb2, 0x01); 641 ret = m88ds3103_wr_reg(priv, 0xb2, 0x01);
642 if (ret) 642 if (ret)
643 goto err; 643 goto error_fw_release;
644 644
645 for (remaining = fw->size; remaining > 0; 645 for (remaining = fw->size; remaining > 0;
646 remaining -= (priv->cfg->i2c_wr_max - 1)) { 646 remaining -= (priv->cfg->i2c_wr_max - 1)) {
@@ -654,13 +654,13 @@ static int m88ds3103_init(struct dvb_frontend *fe)
654 dev_err(&priv->i2c->dev, 654 dev_err(&priv->i2c->dev,
655 "%s: firmware download failed=%d\n", 655 "%s: firmware download failed=%d\n",
656 KBUILD_MODNAME, ret); 656 KBUILD_MODNAME, ret);
657 goto err; 657 goto error_fw_release;
658 } 658 }
659 } 659 }
660 660
661 ret = m88ds3103_wr_reg(priv, 0xb2, 0x00); 661 ret = m88ds3103_wr_reg(priv, 0xb2, 0x00);
662 if (ret) 662 if (ret)
663 goto err; 663 goto error_fw_release;
664 664
665 release_firmware(fw); 665 release_firmware(fw);
666 fw = NULL; 666 fw = NULL;
@@ -686,9 +686,10 @@ skip_fw_download:
686 priv->warm = true; 686 priv->warm = true;
687 687
688 return 0; 688 return 0;
689err:
690 release_firmware(fw);
691 689
690error_fw_release:
691 release_firmware(fw);
692err:
692 dev_dbg(&priv->i2c->dev, "%s: failed=%d\n", __func__, ret); 693 dev_dbg(&priv->i2c->dev, "%s: failed=%d\n", __func__, ret);
693 return ret; 694 return ret;
694} 695}