On Fri, 11 Mar 2016 11:34:36 +0100, Sean Nyekjaer wrote: > Signed-off-by: Sean Nyekjaer <sean.nyekjaer@xxxxxxxxx> > --- > This patch depends on patch "sc16is7xx: drop bogus use of IRQF_ONESHOT" > > drivers/tty/serial/sc16is7xx.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c > index 73d46e2..96d1f3e 100644 > --- a/drivers/tty/serial/sc16is7xx.c > +++ b/drivers/tty/serial/sc16is7xx.c > @@ -706,13 +706,20 @@ static void sc16is7xx_ist(struct kthread_work *ws) > struct sc16is7xx_port *s = to_sc16is7xx_port(ws, irq_work); > int i; > > - for (i = 0; i < s->devtype->nr_uart; ++i) > + for (i = 0; i < s->devtype->nr_uart; ++i) { > sc16is7xx_port_irq(s, i); > + enable_irq(s->p[i].port.irq); > + } > + > } Apart from needless multiple disable/enable (as tglx commented) I think you also have to re-read the IRQ status (i.e. call sc16is7xx_port_irq()) because IRQs coming between status read and enable_irq may get lost for some IRQ controllers. -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html