Re: [PATCH v3 04/25] clocksource: Add Owl timer

From: Thomas Gleixner
Date: Tue Feb 28 2017 - 14:37:01 EST


On Tue, 28 Feb 2017, Daniel Lezcano wrote:
> On Tue, Feb 28, 2017 at 06:08:06PM +0100, Andreas Färber wrote:
> > >> +static irqreturn_t owl_timer1_interrupt(int irq, void *dev_id)
> > >> +{
> > >> + struct clock_event_device *evt = (struct clock_event_device *)dev_id;
> > >> +
> > >> + writel(OWL_Tx_CTL_PD, owl_timer_get_base(1) + OWL_Tx_CTL);
> > >> +
> > >> + evt->event_handler(evt);
> >
> > Is there any guideline as to whether to clear such flag before or after?
>
> Mmh, good question. I'm not sure it makes a different.

It makes a difference depending on what this flag does. If it clears the
current pending interrupt, then you _must_ do it before rearming the
timer. Otherwise you might clear the pending interrupt of the rearmed timer
(when the timeout is very small) which makes the machine wait forever for
the next timer interrupt.

Thanks,

tglx