hw/timer/exynos4210_mct: Avoid overflow in exynos4210_ltick_recalc_count

Add casts to avoid potentially overflowing the multiplications
of 32 bit quantities in exynos4210_ltick_recalc_count().

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
master
Peter Maydell 2014-05-13 16:09:39 +01:00
parent 2a41c92854
commit c3a699be3c
1 changed files with 2 additions and 2 deletions

View File

@ -818,14 +818,14 @@ static void exynos4210_ltick_recalc_count(struct tick_timer *s)
*/
if (s->last_tcnto) {
to_count = s->last_tcnto * s->last_icnto;
to_count = (uint64_t)s->last_tcnto * s->last_icnto;
} else {
to_count = s->last_icnto;
}
} else {
/* distance is passed, recalculate with tcnto * icnto */
if (s->icntb) {
s->distance = s->tcntb * s->icntb;
s->distance = (uint64_t)s->tcntb * s->icntb;
} else {
s->distance = s->tcntb;
}