hw/core/ptimer: Support ptimer being disabled by timer callback
authorPeter Maydell <peter.maydell@linaro.org>
Thu, 15 Oct 2020 15:18:28 +0000 (16:18 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 27 Oct 2020 11:15:31 +0000 (11:15 +0000)
commit68d59c6d8d85ae176d3cb2cd20a48d6a090ba288
treecb227c229c530d515dc61e06db58d84131b8c690
parentbaabe7d03c0bd57735cff998d2369c1a4f7cfb5c
hw/core/ptimer: Support ptimer being disabled by timer callback

In ptimer_reload(), we call the callback function provided by the
timer device that is using the ptimer.  This callback might disable
the ptimer.  The code mostly handles this correctly, except that
we'll still print the warning about "Timer with delta zero,
disabling" if the now-disabled timer happened to be set such that it
would fire again immediately if it were enabled (eg because the
limit/reload value is zero).

Suppress the spurious warning message and the unnecessary
repeat-deletion of the underlying timer in this case.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20201015151829.14656-2-peter.maydell@linaro.org
hw/core/ptimer.c