Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[media] dib8000: Properly represent long long integers

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>

+3 -3
+3 -3
drivers/media/dvb-frontends/dib8000.c
··· 4118 4118 /* Get UCB measures */ 4119 4119 dib8000_read_unc_blocks(fe, &val); 4120 4120 if (val < state->init_ucb) 4121 - state->init_ucb += 0x100000000L; 4121 + state->init_ucb += 0x100000000LL; 4122 4122 4123 4123 c->block_error.stat[0].scale = FE_SCALE_COUNTER; 4124 4124 c->block_error.stat[0].uvalue = val + state->init_ucb; ··· 4128 4128 time_us = dib8000_get_time_us(fe, -1); 4129 4129 4130 4130 if (time_us) { 4131 - blocks = 1250000UL * 1000000UL; 4131 + blocks = 1250000ULL * 1000000ULL; 4132 4132 do_div(blocks, time_us * 8 * 204); 4133 4133 c->block_count.stat[0].scale = FE_SCALE_COUNTER; 4134 4134 c->block_count.stat[0].uvalue += blocks; ··· 4191 4191 if (!time_us) 4192 4192 time_us = dib8000_get_time_us(fe, i); 4193 4193 if (time_us) { 4194 - blocks = 1250000UL * 1000000UL; 4194 + blocks = 1250000ULL * 1000000ULL; 4195 4195 do_div(blocks, time_us * 8 * 204); 4196 4196 c->block_count.stat[0].scale = FE_SCALE_COUNTER; 4197 4197 c->block_count.stat[0].uvalue += blocks;