From: Daniel Scheller <d.schel...@gmx.net>

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.schel...@gmx.net>
---
 drivers/media/dvb-frontends/stv0910.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/media/dvb-frontends/stv0910.c 
b/drivers/media/dvb-frontends/stv0910.c
index 41444fa1c0bb..91b21eb59531 100644
--- a/drivers/media/dvb-frontends/stv0910.c
+++ b/drivers/media/dvb-frontends/stv0910.c
@@ -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) {
-- 
2.16.4

Reply via email to