lkml.org 
[lkml]   [2018]   [Feb]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 089/108] media: ts2020: avoid integer overflows on 32 bit machines
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Mauro Carvalho Chehab <mchehab@s-opensource.com>

    commit 81742be14b6a90c9fd0ff6eb4218bdf696ad8e46 upstream.

    Before this patch, when compiled for arm32, the signal strength
    were reported as:

    Lock (0x1f) Signal= 4294908.66dBm C/N= 12.79dB

    Because of a 32 bit integer overflow. After it, it is properly
    reported as:

    Lock (0x1f) Signal= -58.64dBm C/N= 12.79dB

    Fixes: 0f91c9d6bab9 ("[media] TS2020: Calculate tuner gain correctly")
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/media/dvb-frontends/ts2020.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/drivers/media/dvb-frontends/ts2020.c
    +++ b/drivers/media/dvb-frontends/ts2020.c
    @@ -369,7 +369,7 @@ static int ts2020_read_tuner_gain(struct
    gain2 = clamp_t(long, gain2, 0, 13);
    v_agc = clamp_t(long, v_agc, 400, 1100);

    - *_gain = -(gain1 * 2330 +
    + *_gain = -((__s64)gain1 * 2330 +
    gain2 * 3500 +
    v_agc * 24 / 10 * 10 +
    10000);
    @@ -387,7 +387,7 @@ static int ts2020_read_tuner_gain(struct
    gain3 = clamp_t(long, gain3, 0, 6);
    v_agc = clamp_t(long, v_agc, 600, 1600);

    - *_gain = -(gain1 * 2650 +
    + *_gain = -((__s64)gain1 * 2650 +
    gain2 * 3380 +
    gain3 * 2850 +
    v_agc * 176 / 100 * 10 -

    \
     
     \ /
      Last update: 2018-02-15 19:33    [W:4.041 / U:0.132 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site