[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 6/6] exynos4210/mct: Avoid infinite loop on non incr
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PATCH 6/6] exynos4210/mct: Avoid infinite loop on non incremental timers |
Date: |
Tue, 11 Dec 2012 15:22:40 +0000 |
From: Jean-Christophe DUBOIS <address@hidden>
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>
Reviewed-by: Evgeny Voevodin <address@hidden>
Signed-off-by: Peter Maydell <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);
--
1.7.9.5
- [Qemu-devel] [PULL 0/6] arm-devs queue, Peter Maydell, 2012/12/11
- [Qemu-devel] [PATCH 1/6] hw/arm_boot, exynos4210, highbank: Fix secondary boot GIC init, Peter Maydell, 2012/12/11
- [Qemu-devel] [PATCH 6/6] exynos4210/mct: Avoid infinite loop on non incremental timers,
Peter Maydell <=
- [Qemu-devel] [PATCH 4/6] xilinx_zynq: Add one variable to avoid overwriting QSPI bus, Peter Maydell, 2012/12/11
- [Qemu-devel] [PATCH 5/6] hw/arm_gic: fix target CPUs affected by set enable/pending ops, Peter Maydell, 2012/12/11
- [Qemu-devel] [PATCH 2/6] hw/arm_gic: Fix comparison with priority mask register, Peter Maydell, 2012/12/11
- [Qemu-devel] [PATCH 3/6] hw/arm_gic_common: Correct GICC_PMR reset value for newer GICs, Peter Maydell, 2012/12/11