[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] hw/riscv/sifive_clint.c: avoid integer overflow
From: |
Fabien Chouteau |
Subject: |
Re: [Qemu-devel] [PATCH] hw/riscv/sifive_clint.c: avoid integer overflow in timecmp write |
Date: |
Thu, 7 Feb 2019 11:08:24 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 |
Hello Alistair,
On 07/02/2019 01:42, Alistair Francis wrote:>
> Can you describe what this fixes?
>
I encountered this problem when I tried to write 0xffffffffffffffff in timecmp.
With the integer overflow in QEMU, writing this value means that the QEMU timer
will be set in the past.
> Won't an overflow be ok as we then just wrap around anyway? I guess
> there is a problem if we want a value so large that we wrap around
> past our current time though.
>
The overflow was in the computation of the value `next_ns`. It is used to set
the QEMU timer:
timer_mod(cpu->env.timer, next_ns);
A negative `next_ns` -because of the overflow- means that the timer
triggers immediately instead of far in the future.
Regards,