From: Olli Salonen Date: Wed, 16 Mar 2016 11:04:51 +0000 (-0300) Subject: [media] ds3000: return error if invalid symbol rate is set X-Git-Tag: v4.8-rc1~152^2~278 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=212fa081262e17affb1aa3ed8fd7a5b2fffbfc00;p=karo-tx-linux.git [media] ds3000: return error if invalid symbol rate is set Return -EINVAL if ds3000_set_frontend is called with invalid parameters. v1 of the patch series got incorrect subject lines. Signed-off-by: Olli Salonen Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/dvb-frontends/ds3000.c b/drivers/media/dvb-frontends/ds3000.c index addffc33993a..447b518e287a 100644 --- a/drivers/media/dvb-frontends/ds3000.c +++ b/drivers/media/dvb-frontends/ds3000.c @@ -959,6 +959,15 @@ static int ds3000_set_frontend(struct dvb_frontend *fe) /* enable ac coupling */ ds3000_writereg(state, 0x25, 0x8a); + if ((c->symbol_rate < ds3000_ops.info.symbol_rate_min) || + (c->symbol_rate > ds3000_ops.info.symbol_rate_max)) { + dprintk("%s() symbol_rate %u out of range (%u ... %u)\n", + __func__, c->symbol_rate, + ds3000_ops.info.symbol_rate_min, + ds3000_ops.info.symbol_rate_max); + return -EINVAL; + } + /* enhance symbol rate performance */ if ((c->symbol_rate / 1000) <= 5000) { value = 29777 / (c->symbol_rate / 1000) + 1;