diff options
author | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2017-11-01 17:05:47 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2017-12-11 13:04:52 -0500 |
commit | 8a08ef08fb132b3184e99fa8c1a007bcfadd9942 (patch) | |
tree | 0170b9b507810be076709c55336826f7aa6105f9 /drivers/media/tuners | |
parent | 02d7324337c0223f3775d539380e32f603646a52 (diff) | |
download | linux-8a08ef08fb132b3184e99fa8c1a007bcfadd9942.tar.gz linux-8a08ef08fb132b3184e99fa8c1a007bcfadd9942.tar.bz2 linux-8a08ef08fb132b3184e99fa8c1a007bcfadd9942.zip |
media: xc4000: don't ignore error if hwmodel fails
If, for some reason, reading the hwmodel register on
xc4000 fails, it will cause the following logig to
use a random value, as reported by smatch:
drivers/media/tuners/xc4000.c:1047 check_firmware() error: uninitialized symbol 'hwmodel'.
drivers/media/tuners/xc4000.c:1060 check_firmware() error: uninitialized symbol 'hwmodel'.
drivers/media/tuners/xc4000.c:1064 check_firmware() error: uninitialized symbol 'hwmodel'.
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Diffstat (limited to 'drivers/media/tuners')
-rw-r--r-- | drivers/media/tuners/xc4000.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/media/tuners/xc4000.c b/drivers/media/tuners/xc4000.c index e30948e4ff87..2113ce594f75 100644 --- a/drivers/media/tuners/xc4000.c +++ b/drivers/media/tuners/xc4000.c @@ -1036,7 +1036,10 @@ skip_std_specific: dprintk(1, "load scode failed %d\n", rc); check_device: - rc = xc4000_readreg(priv, XREG_PRODUCT_ID, &hwmodel); + if (xc4000_readreg(priv, XREG_PRODUCT_ID, &hwmodel) < 0) { + printk(KERN_ERR "Unable to read tuner registers.\n"); + goto fail; + } if (xc_get_version(priv, &hw_major, &hw_minor, &fw_major, &fw_minor) != 0) { |