OSDN Git Service

media: dvb-frontends/stv0910: cast the BER denominator shift exp to ULL
authorDaniel Scheller <d.scheller@gmx.net>
Sat, 23 Jun 2018 15:35:58 +0000 (11:35 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Mon, 30 Jul 2018 20:23:12 +0000 (16:23 -0400)
To avoid miscalculations related to the BER denominator, the shift
expression needs to be casted as ULL.

Picked up from the upstream dddvb GIT.

Signed-off-by: Daniel Scheller <d.scheller@gmx.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/dvb-frontends/stv0910.c

index 41444fa..91b21eb 100644 (file)
@@ -682,8 +682,8 @@ static int get_bit_error_rate_s(struct stv *state, u32 *bernumerator,
                return -EINVAL;
 
        if ((regs[0] & 0x80) == 0) {
-               state->last_berdenominator = 1 << ((state->berscale * 2) +
-                                                 10 + 3);
+               state->last_berdenominator = 1ULL << ((state->berscale * 2) +
+                                                    10 + 3);
                state->last_bernumerator = ((u32)(regs[0] & 0x7F) << 16) |
                        ((u32)regs[1] << 8) | regs[2];
                if (state->last_bernumerator < 256 && state->berscale < 6) {