summaryrefslogtreecommitdiff
path: root/drivers/media/dvb
diff options
context:
space:
mode:
authorSteven Toth <stoth@hauppauge.com>2008-01-25 04:29:46 +0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-01-26 00:05:14 +0300
commit5ea60531c1c6164788ea7d6efecdf575adc543ff (patch)
treef958ddc46216a5d3011c16779b876e111c2d86eb /drivers/media/dvb
parent2fb8840663cf0e476549104a2c09caa0fb3b4bc9 (diff)
downloadlinux-5ea60531c1c6164788ea7d6efecdf575adc543ff.tar.xz
V4L/DVB (7063): xc5000: Fix OOPS caused by missing firmware
xc5000: Fix OOPS caused by missing firmware. Signed-off-by: Chaogui Zhang <czhang1974@gmail.com> Acked-by: Steven Toth <stoth@hauppauge.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/dvb')
-rw-r--r--drivers/media/dvb/frontends/xc5000.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/media/dvb/frontends/xc5000.c b/drivers/media/dvb/frontends/xc5000.c
index a13027e09cda..f642ca200b59 100644
--- a/drivers/media/dvb/frontends/xc5000.c
+++ b/drivers/media/dvb/frontends/xc5000.c
@@ -558,6 +558,7 @@ static int xc5000_fwupload(struct dvb_frontend* fe)
if (ret) {
printk(KERN_ERR "xc5000: Upload failed. (file not found?)\n");
ret = XC_RESULT_RESET_FAILURE;
+ goto out;
} else {
printk(KERN_INFO "xc5000: firmware read %Zu bytes.\n",
fw->size);
@@ -572,6 +573,7 @@ static int xc5000_fwupload(struct dvb_frontend* fe)
ret = xc_load_i2c_sequence(fe, fw->data );
}
+out:
release_firmware(fw);
return ret;
}