aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@kernellabs.com>2010-05-03 01:10:15 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-08-02 13:48:43 -0400
commitfab9bfbed22f91f271a93a3dfa142179a2278935 (patch)
treec2b8e9c63afa7f84380be2be9f509f2bd9314469
parent4359e5b5ba3b746cd02bd3a18d576b11c0843419 (diff)
V4L/DVB: tda18271: fix error detection during initialization of first instance
Fix error detection of failures during initialization of first instance: Dont pass a function into the tda_fail macro. Instead, save the function return value and pass that into the tda_fail macro. This prevents the function from being called twice in cases of failure, for example: [19026.074070] tuner 4-0060: chip found @ 0xc0 (device #0) [19026.087755] tda18271 4-0060: creating new instance [19026.089965] Unknown device detected @ 4-0060, device not supported. [19026.092233] Unknown device detected @ 4-0060, device not supported. [19026.092241] tda18271_attach: [4-0060|M] error -22 on line 1275 [19026.092327] tda18271 4-0060: destroying instance Signed-off-by: Michael Krufky <mkrufky@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/common/tuners/tda18271-fe.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/media/common/tuners/tda18271-fe.c b/drivers/media/common/tuners/tda18271-fe.c
index b2e15456d5f3..7955e49a3440 100644
--- a/drivers/media/common/tuners/tda18271-fe.c
+++ b/drivers/media/common/tuners/tda18271-fe.c
@@ -1249,7 +1249,7 @@ struct dvb_frontend *tda18271_attach(struct dvb_frontend *fe, u8 addr,
1249 struct tda18271_config *cfg) 1249 struct tda18271_config *cfg)
1250{ 1250{
1251 struct tda18271_priv *priv = NULL; 1251 struct tda18271_priv *priv = NULL;
1252 int instance; 1252 int instance, ret;
1253 1253
1254 mutex_lock(&tda18271_list_mutex); 1254 mutex_lock(&tda18271_list_mutex);
1255 1255
@@ -1268,10 +1268,12 @@ struct dvb_frontend *tda18271_attach(struct dvb_frontend *fe, u8 addr,
1268 priv->cal_initialized = false; 1268 priv->cal_initialized = false;
1269 mutex_init(&priv->lock); 1269 mutex_init(&priv->lock);
1270 1270
1271 if (tda_fail(tda18271_get_id(fe))) 1271 ret = tda18271_get_id(fe);
1272 if (tda_fail(ret))
1272 goto fail; 1273 goto fail;
1273 1274
1274 if (tda_fail(tda18271_assign_map_layout(fe))) 1275 ret = tda18271_assign_map_layout(fe);
1276 if (tda_fail(ret))
1275 goto fail; 1277 goto fail;
1276 1278
1277 mutex_lock(&priv->lock); 1279 mutex_lock(&priv->lock);