qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2] exynos4210/mct: Avoid infinite loop on non i


From: Evgeny Voevodin
Subject: Re: [Qemu-devel] [PATCH v2] exynos4210/mct: Avoid infinite loop on non incremental timers
Date: Tue, 04 Dec 2012 08:12:32 +0400
User-agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/17.0 Thunderbird/17.0

On 12/04/2012 02:55 AM, 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 <address@hidden>
---
  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..37dbda9 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);


Reviewed-by: Evgeny Voevodin <address@hidden>

P.S.: Next time, please, don't forget to CC appropriate people to not
let them miss your patch.

--
Kind regards,
Evgeny Voevodin,
Technical Leader,
Mobile Group,
Samsung Moscow Research Center,
e-mail: address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]