OSDN Git Service

hw/ptimer: Actually stop the timer in case of error
authorDmitry Osipenko <digetx@gmail.com>
Thu, 22 Sep 2016 17:13:06 +0000 (18:13 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 22 Sep 2016 17:13:06 +0000 (18:13 +0100)
Running with counter / period = 0 is treated as a error case, printing error
message claiming that timer has been disabled. However, timer is only marked
as disabled, keeping to tick till expired and triggering after being claimed
as disabled. Stop the QEMU timer to avoid confusion.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Message-id: 1e9bae4fae3c36430d7c28b0f486a0c71aff7eb3.1473252818.git.digetx@gmail.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/core/ptimer.c

index 30829ee..02c3135 100644 (file)
@@ -44,6 +44,7 @@ static void ptimer_reload(ptimer_state *s)
     }
     if (s->delta == 0 || s->period == 0) {
         fprintf(stderr, "Timer with period zero, disabling\n");
+        timer_del(s->timer);
         s->enabled = 0;
         return;
     }