On Wed, Mar 21, 2012 at 1:15 PM, Linus Walleij <linus.walleij@xxxxxxxxxx> wrote: > Commit 360f748b204275229f8398cb2f9f53955db1503b > "serial: PL011: clear pending interrupts" > attempts to clear interrupts by writing to a > yet-unassigned memory address. This fixes the issue. > > The breaking patch is marked for stable so should be > carried along with the other patch. > > Cc: Shreshtha Kumar Sahu <shreshthakumar.sahu@xxxxxxxxxxxxxx> > Cc: Russell King <linux@xxxxxxxxxxxxxxxx> > Cc: stable <stable@xxxxxxxxxxxxxxx> > Reported-by: Viresh Kumar <viresh.kumar@xxxxxx> > Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> Ugh; the original patch is obviously broken. How did it get applied without testing? Greg, can you get this out to Linus ASAP please? I have one comment below, but I don't think it should block merging this patch. Tested-by: Grant Likely <grant.likely@xxxxxxxxxxxx> > --- > drivers/tty/serial/amba-pl011.c | 8 ++++---- > 1 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c > index 7e01399..4ed35c5 100644 > --- a/drivers/tty/serial/amba-pl011.c > +++ b/drivers/tty/serial/amba-pl011.c > @@ -1930,10 +1930,6 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id) > goto unmap; > } > > - /* Ensure interrupts from this UART are masked and cleared */ > - writew(0, uap->port.membase + UART011_IMSC); > - writew(0xffff, uap->port.membase + UART011_ICR); > - > uap->vendor = vendor; > uap->lcrh_rx = vendor->lcrh_rx; > uap->lcrh_tx = vendor->lcrh_tx; > @@ -1951,6 +1947,10 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id) > uap->port.line = i; > pl011_dma_probe(uap); > > + /* Ensure interrupts from this UART are masked and cleared */ > + writew(0, uap->port.membase + UART011_IMSC); > + writew(0xffff, uap->port.membase + UART011_ICR); > + Is it correct to move the interrupt clearing below the pl011_dma_probe() call? I've tested the fix with the interrupt clearing both above and below the pl011_dma_probe() call and versatile qemu boots in both cases. g. -- 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