[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190204224728.GF3397@lunn.ch>
Date: Mon, 4 Feb 2019 23:47:28 +0100
From: Andrew Lunn <andrew@...n.ch>
To: John David Anglin <dave.anglin@...l.net>
Cc: Russell King <linux@....linux.org.uk>,
Vivien Didelot <vivien.didelot@...oirfairelinux.com>,
Florian Fainelli <f.fainelli@...il.com>, netdev@...r.kernel.org
Subject: Re: [PATCH] net: phylink: dsa: mv88e6xxx: Revise irq setup ordering
On Mon, Feb 04, 2019 at 04:38:53PM -0500, John David Anglin wrote:
> On 2019-02-04 3:19 p.m., Andrew Lunn wrote:
> > The IRQ core would do this if it was needed.
> >
> > How many other irq thread work functions can you point to which do
> > something similar?
> This is comment for handle_edge_irq:
>
> /**
> * handle_edge_irq - edge type IRQ handler
> * @desc: the interrupt description structure for this irq
> *
> * Interrupt occures on the falling and/or rising edge of a hardware
> * signal. The occurrence is latched into the irq controller hardware
> * and must be acked in order to be reenabled. After the ack another
> * interrupt can happen on the same source even before the first one
> * is handled by the associated event handler. If this happens it
> * might be necessary to disable (mask) the interrupt depending on the
> * controller hardware. This requires to reenable the interrupt inside
> * of the loop which handles the interrupts which have arrived while
> * the handler was running. If all pending interrupts are handled, the
> * loop is left.
> */
>
> As can be seen, the above comment suggests that it may be necessary to
> disable (mask) interrupt
> as I proposed.
Hi Dave
This comment is describing what handle_edge_irq() actually does. Read
the code. It does not say anything about that the handling thread
function should do.
Andrew
Powered by blists - more mailing lists