lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 22 Mar 2012 16:36:51 -0500 From: H Hartley Sweeten <hartleys@...ionengravers.com> To: Mika Westerberg <mika.westerberg@....fi> CC: Rafal Prylowski <prylowski@...asoft.pl>, "linux-arm-kernel@...ts.infradead.org" <linux-arm-kernel@...ts.infradead.org>, "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, "vinod.koul@...el.com" <vinod.koul@...el.com>, "rmallon@...il.com" <rmallon@...il.com> Subject: RE: [PATCH] ep93xx: Implement double buffering for M2M DMA channels On Thursday, March 22, 2012 1:04 PM, Mika Westerberg wrote: > On Thu, Mar 22, 2012 at 01:52:52PM -0500, H Hartley Sweeten wrote: > >> I hacked this back to the handle_one_vic function. It looks like every time >> I get the message above the stat read in that function shows an active >> interrupt for DMAM2M0 (the dma rx channel) and DMAM2M1 (the dma >> tx channel). Because of the way handle_one_vic processes the irq's, the >> DMAM2M0 interrupt gets handled first. When it's done it must be clearing >> the DMAM2M1 interrupt automatically for some reason. So, when it's >> handled there is no interrupt pending so we get the message. >> >> The "cleanest" fix I can think of is the following patch. This is against >> linux-next. > > I can't figure out any better fix unless we move ep93xx back to use > !MULTI_IRQ_HANDLER which obviously is not good thing to do. I agree. >> From: H Hartley Sweeten <hsweeten@...ionengravers.com> >> >> dma: ep93xx: check for spurious interrupts >> >> The ep93xx dma controller generates spurious interrupts on dma1chan1 when >> used with the mmc_spi driver. Catch these early by making sure there is an >> interrupt to actually process. >> >> Signed-off-by: H Hartley Sweeten <hsweeten@...ionengravers.com> > > Tested-by: Mika Westerberg <mika.westerberg@....fi> > > Thanks for investigating this. You missed one thing though, see below. > Otherwise it doesn't compile :) > > diff --git a/drivers/dma/ep93xx_dma.c b/drivers/dma/ep93xx_dma.c > index e1cc87a..614bff4 100644 > --- a/drivers/dma/ep93xx_dma.c > +++ b/drivers/dma/ep93xx_dma.c > @@ -751,7 +751,7 @@ static irqreturn_t ep93xx_dma_interrupt(int irq, void *dev_id) > return IRQ_NONE; > } > > - switch (edmac->edma->hw_interrupt(edmac)) { > + switch (edmac->edma->hw_interrupt(edmac, irq_status)) { > case INTERRUPT_DONE: > desc->complete = true; > tasklet_schedule(&edmac->tasklet); Gah... Misstyped it when I created the patch. I'll fix it and post a proper patch with your Tested-by. Thanks, Hartley -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists