From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50482) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WEeWS-0000GB-1J for qemu-devel@nongnu.org; Sat, 15 Feb 2014 07:39:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WEeWL-000479-FW for qemu-devel@nongnu.org; Sat, 15 Feb 2014 07:39:07 -0500 Received: from mail-lb0-f174.google.com ([209.85.217.174]:42244) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WEeWL-00046d-7y for qemu-devel@nongnu.org; Sat, 15 Feb 2014 07:39:01 -0500 Received: by mail-lb0-f174.google.com with SMTP id l4so10101473lbv.33 for ; Sat, 15 Feb 2014 04:39:00 -0800 (PST) MIME-Version: 1.0 In-Reply-To: <1392282978-19368-1-git-send-email-sebastian.huber@embedded-brains.de> References: <1392282978-19368-1-git-send-email-sebastian.huber@embedded-brains.de> From: Peter Maydell Date: Sat, 15 Feb 2014 12:38:39 +0000 Message-ID: Content-Type: text/plain; charset=UTF-8 Subject: Re: [Qemu-devel] [PATCH] hw/timer/grlib_gptimer: Avoid integer overflow List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Sebastian Huber Cc: QEMU Trivial , QEMU Developers , Fabien Chouteau On 13 February 2014 09:16, Sebastian Huber wrote: > The GPTIMER uses 32-bit registers. Use a 64-bit operation to get the > ptimer count, otherwise we end up with a count of 0 for GPTIMER counter > values of 0xffffffff. > --- > hw/timer/grlib_gptimer.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/hw/timer/grlib_gptimer.c b/hw/timer/grlib_gptimer.c > index d5687f6..343563c 100644 > --- a/hw/timer/grlib_gptimer.c > +++ b/hw/timer/grlib_gptimer.c > @@ -106,9 +106,9 @@ static void grlib_gptimer_enable(GPTimer *timer) > /* ptimer is triggered when the counter reach 0 but GPTimer is triggered at > underflow. Set count + 1 to simulate the GPTimer behavior. */ > > - trace_grlib_gptimer_enable(timer->id, timer->counter + 1); > + trace_grlib_gptimer_enable(timer->id, timer->counter); This change isn't mentioned in the commit message... > - ptimer_set_count(timer->ptimer, timer->counter + 1); > + ptimer_set_count(timer->ptimer, (uint64_t)timer->counter + 1); > ptimer_run(timer->ptimer, 1); > } thanks -- PMM