From: Nicolas Noirbent Date: Mon, 22 Mar 2010 17:54:43 +0000 (-0300) Subject: V4L/DVB: ds3000: fix divide-by-zero error in ds3000_read_snr() X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=450df22286eee7431b34644410aeff18936c7afe;p=deliverable%2Flinux.git V4L/DVB: ds3000: fix divide-by-zero error in ds3000_read_snr() Fix a divide-by-zero error in ds3000's ds3000_read_snr(), when getting a very low signal reading (dvbs2_signal_reading >= 1). This prevents some nasty EIPs when running szap-s2 with a very low signal strength. Signed-off-by: Nicolas Noirbent Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/dvb/frontends/ds3000.c b/drivers/media/dvb/frontends/ds3000.c index cff3535566fe..78001e8bcdb7 100644 --- a/drivers/media/dvb/frontends/ds3000.c +++ b/drivers/media/dvb/frontends/ds3000.c @@ -719,7 +719,7 @@ static int ds3000_read_snr(struct dvb_frontend *fe, u16 *snr) (ds3000_readreg(state, 0x8d) << 4); dvbs2_signal_reading = ds3000_readreg(state, 0x8e); tmp = dvbs2_signal_reading * dvbs2_signal_reading >> 1; - if (dvbs2_signal_reading == 0) { + if (tmp == 0) { *snr = 0x0000; return 0; }