]> asedeno.scripts.mit.edu Git - linux.git/commit
[media] si2165: avoid division by zero
authorMatthias Schwarzott <zzam@gentoo.org>
Tue, 26 Jul 2016 06:53:40 +0000 (03:53 -0300)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Thu, 22 Sep 2016 15:53:22 +0000 (12:53 -0300)
commit2df9dda07f56c285564ce97ca76a94e70a50df5e
treecffc4cff865a2217a5edf3ee06239fe3bb2b0f0c
parentc0bf09d047e18e9948a431f7662b20777e540d80
[media] si2165: avoid division by zero

When si2165_init fails, the clk values in state are still at zero.
But the dvb-core ignores the return value of init will call tune
afterwards.
This will trigger a division by zero when tuning.
At least check for the variables to be non-zero before dividing.

This happened for a system with WinTV HVR-4400 PCIe-card after suspend-to-disk.
Do suspend-to-disk without accessing the DVB device before.
After wakeup try to tune.
si2165_init fails at checking the chip_mode and aborts.
Then si2165_set_if_freq_shift will fail with div-by-zero.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/dvb-frontends/si2165.c