From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:59513) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TfRdW-0007Ux-CS for qemu-devel@nongnu.org; Mon, 03 Dec 2012 03:44:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TfRdR-0001vQ-Vt for qemu-devel@nongnu.org; Mon, 03 Dec 2012 03:44:22 -0500 Received: from mailout4.w1.samsung.com ([210.118.77.14]:49658) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TfRdR-0001pC-QD for qemu-devel@nongnu.org; Mon, 03 Dec 2012 03:44:17 -0500 Received: from eucpsbgm2.samsung.com (unknown [203.254.199.245]) by mailout4.w1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MEG009E55P3G530@mailout4.w1.samsung.com> for qemu-devel@nongnu.org; Mon, 03 Dec 2012 08:47:00 +0000 (GMT) Received: from [106.109.8.15] by eusync3.samsung.com (Oracle Communications Messaging Server 7u4-23.01(7.0.4.23.0) 64bit (built Aug 10 2011)) with ESMTPA id <0MEG00I7C5LOBP10@eusync3.samsung.com> for qemu-devel@nongnu.org; Mon, 03 Dec 2012 08:44:13 +0000 (GMT) Message-id: <50BC665A.20000@samsung.com> Date: Mon, 03 Dec 2012 12:44:10 +0400 From: Evgeny Voevodin MIME-version: 1.0 References: <50BA39A9.8030402@tribudubois.net> In-reply-to: <50BA39A9.8030402@tribudubois.net> Content-type: text/plain; charset=ISO-8859-1; format=flowed Content-transfer-encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] exynos4210/mct: Avoid infinite loop on non incremental timers List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jean-Christophe DUBOIS Cc: Kyungmin Park , m.kozlov@samsung.com, Igor Mitsyanko , qemu-devel@nongnu.org, d.solodkiy@samsung.com On 12/01/2012 09:08 PM, Jean-Christophe DUBOIS wrote: > Check for a 0 "distance" value to avoid infinite loop when the > expired FCR timer was not programed with auto-increment. > > With this change the behavior is coherent with the same type > of code in the exynos4210_gfrc_restart() function in the same > file. > > Linux seems to mostly use this timer with auto-increment > which explain why it is not a problem most of the time. > > However other OS might have a problem with this if they > don't use the auto-increment feature. > > Signed-off-by: Jean-Christophe DUBOIS > --- > hw/exynos4210_mct.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/exynos4210_mct.c b/hw/exynos4210_mct.c > index e79cd6a..31a41d5 100644 > --- a/hw/exynos4210_mct.c > +++ b/hw/exynos4210_mct.c > @@ -568,7 +568,7 @@ static void exynos4210_gfrc_event(void *opaque) > /* Reload FRC to reach nearest comparator */ > s->g_timer.curr_comp = exynos4210_gcomp_find(s); > distance = exynos4210_gcomp_get_distance(s, s->g_timer.curr_comp); > - if (distance > MCT_GT_COUNTER_STEP) { > + if ((distance > MCT_GT_COUNTER_STEP) || !distance) { You don't need additional braces here. > distance = MCT_GT_COUNTER_STEP; > } > exynos4210_gfrc_set_count(&s->g_timer, distance); > -- > > 1.7.9.5 > > > Doesn't apply to current master, please, rebase: Applying: exynos4210/mct: Avoid infinite loop on non incremental timers error: patch failed: hw/exynos4210_mct.c:568 error: hw/exynos4210_mct.c: patch does not apply -- Kind regards, Evgeny Voevodin, Technical Leader, Mobile Group, Samsung Moscow Research Centre, e-mail: e.voevodin@samsung.com