[media] dib8000: Properly represent long long integers
authorMauro Carvalho Chehab <m.chehab@samsung.com>
Mon, 13 Jan 2014 17:05:44 +0000 (15:05 -0200)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Mon, 13 Jan 2014 18:28:12 +0000 (16:28 -0200)
When compiling with avr32, it gets those errors:

drivers/media/dvb-frontends/dib8000.c: In function 'dib8000_get_stats':
drivers/media/dvb-frontends/dib8000.c:4121: warning: integer constant is too large for 'long' type

Fix integer representation to avoid overflow.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/dvb-frontends/dib8000.c

index 481ee49e6a377489ec4f524c1a730945423d5317..dd4a99cff3e7de9038e8508f7156d848cbf3c203 100644 (file)
@@ -4118,7 +4118,7 @@ static int dib8000_get_stats(struct dvb_frontend *fe, fe_status_t stat)
                /* Get UCB measures */
                dib8000_read_unc_blocks(fe, &val);
                if (val < state->init_ucb)
-                       state->init_ucb += 0x100000000L;
+                       state->init_ucb += 0x100000000LL;
 
                c->block_error.stat[0].scale = FE_SCALE_COUNTER;
                c->block_error.stat[0].uvalue = val + state->init_ucb;
@@ -4128,7 +4128,7 @@ static int dib8000_get_stats(struct dvb_frontend *fe, fe_status_t stat)
                        time_us = dib8000_get_time_us(fe, -1);
 
                if (time_us) {
-                       blocks = 1250000UL * 1000000UL;
+                       blocks = 1250000ULL * 1000000ULL;
                        do_div(blocks, time_us * 8 * 204);
                        c->block_count.stat[0].scale = FE_SCALE_COUNTER;
                        c->block_count.stat[0].uvalue += blocks;
@@ -4191,7 +4191,7 @@ static int dib8000_get_stats(struct dvb_frontend *fe, fe_status_t stat)
                        if (!time_us)
                                time_us = dib8000_get_time_us(fe, i);
                        if (time_us) {
-                               blocks = 1250000UL * 1000000UL;
+                               blocks = 1250000ULL * 1000000ULL;
                                do_div(blocks, time_us * 8 * 204);
                                c->block_count.stat[0].scale = FE_SCALE_COUNTER;
                                c->block_count.stat[0].uvalue += blocks;