From patchwork Sat Dec 1 17:08:57 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jean-Christophe Dubois X-Patchwork-Id: 203141 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id EBA202C008E for ; Sun, 2 Dec 2012 04:09:12 +1100 (EST) Received: from localhost ([::1]:48352 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TeqYv-0000Ly-Io for incoming@patchwork.ozlabs.org; Sat, 01 Dec 2012 12:09:09 -0500 Received: from eggs.gnu.org ([208.118.235.92]:57321) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TeqYp-0000Lq-2B for qemu-devel@nongnu.org; Sat, 01 Dec 2012 12:09:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TeqYn-0000zM-UT for qemu-devel@nongnu.org; Sat, 01 Dec 2012 12:09:02 -0500 Received: from zose-mta13.web4all.fr ([178.33.204.91]:34038) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TeqYn-0000zD-Oo for qemu-devel@nongnu.org; Sat, 01 Dec 2012 12:09:01 -0500 Received: from localhost (localhost [127.0.0.1]) by zose-mta13.web4all.fr (Postfix) with ESMTP id 172165804D; Sat, 1 Dec 2012 18:15:57 +0100 (CET) X-Virus-Scanned: amavisd-new at zose1.web4all.fr Received: from zose-mta13.web4all.fr ([127.0.0.1]) by localhost (zose-mta13.web4all.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ybD4QywsqpXZ; Sat, 1 Dec 2012 18:15:56 +0100 (CET) Received: from [192.168.1.128] (smm49-1-78-235-240-156.fbx.proxad.net [78.235.240.156]) by zose-mta13.web4all.fr (Postfix) with ESMTPSA id 375DA58047; Sat, 1 Dec 2012 18:15:56 +0100 (CET) Message-ID: <50BA39A9.8030402@tribudubois.net> Date: Sat, 01 Dec 2012 18:08:57 +0100 From: Jean-Christophe DUBOIS User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0 MIME-Version: 1.0 To: qemu-devel@nongnu.org, e.voevodin@samsung.com, m.kozlov@samsung.com, Igor Mitsyanko , d.solodkiy@samsung.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 178.33.204.91 Cc: Jean-Christophe Dubois Subject: [Qemu-devel] [PATCH] exynos4210/mct: Avoid infinite loop on non incremental timers X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org 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(-) -- 1.7.9.5 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) { distance = MCT_GT_COUNTER_STEP; } exynos4210_gfrc_set_count(&s->g_timer, distance);