diff mbox

dmaengine: pxa_dma: fix initial list move

Message ID 1442826392-9082-1-git-send-email-robert.jarzmik@free.fr (mailing list archive)
State Accepted
Headers show

Commit Message

Robert Jarzmik Sept. 21, 2015, 9:06 a.m. UTC
Since the commit to have an allocated list of virtual descriptors was
reverted, the pxa_dma driver is broken, as it assumes the descriptor is
placed on the allocated list upon allocation.

Fix the issue in pxa_dma by making an allocated virtual descriptor a
singleton.

Fixes: 8c8fe97b2b8a ("Revert "dmaengine: virt-dma: don't always free descriptor upon completion"")
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
---
Vinod, this is my fallback plan as I'm getting no answer on
https://lkml.org/lkml/2015/9/6/112. If I get no answer before v4.3-rc3,
I'll put that into the pxa tree.
---
 drivers/dma/pxa_dma.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Vinod Koul Sept. 24, 2015, 5:28 p.m. UTC | #1
On Mon, Sep 21, 2015 at 11:06:32AM +0200, Robert Jarzmik wrote:
> Since the commit to have an allocated list of virtual descriptors was
> reverted, the pxa_dma driver is broken, as it assumes the descriptor is
> placed on the allocated list upon allocation.
> 
> Fix the issue in pxa_dma by making an allocated virtual descriptor a
> singleton.

This seems okay, simpler and safer. Do you want me to apply this instead
while detailed approach can be reviewed and discussed
Robert Jarzmik Sept. 24, 2015, 7:39 p.m. UTC | #2
Vinod Koul <vinod.koul@intel.com> writes:

> On Mon, Sep 21, 2015 at 11:06:32AM +0200, Robert Jarzmik wrote:
>> Since the commit to have an allocated list of virtual descriptors was
>> reverted, the pxa_dma driver is broken, as it assumes the descriptor is
>> placed on the allocated list upon allocation.
>> 
>> Fix the issue in pxa_dma by making an allocated virtual descriptor a
>> singleton.
>
> This seems okay, simpler and safer. Do you want me to apply this instead
> while detailed approach can be reviewed and discussed
Yes, please. Having the guarantee this gets into the next or next after next -rc
will enable me to do my pull request, and repair pxa.

Cheers.
Vinod Koul Sept. 25, 2015, 1:51 a.m. UTC | #3
On Thu, Sep 24, 2015 at 09:39:32PM +0200, Robert Jarzmik wrote:
> Vinod Koul <vinod.koul@intel.com> writes:
> 
> > On Mon, Sep 21, 2015 at 11:06:32AM +0200, Robert Jarzmik wrote:
> >> Since the commit to have an allocated list of virtual descriptors was
> >> reverted, the pxa_dma driver is broken, as it assumes the descriptor is
> >> placed on the allocated list upon allocation.
> >> 
> >> Fix the issue in pxa_dma by making an allocated virtual descriptor a
> >> singleton.
> >
> > This seems okay, simpler and safer. Do you want me to apply this instead
> > while detailed approach can be reviewed and discussed
> Yes, please. Having the guarantee this gets into the next or next after next -rc
> will enable me to do my pull request, and repair pxa.

Applied, thanks
diff mbox

Patch

diff --git a/drivers/dma/pxa_dma.c b/drivers/dma/pxa_dma.c
index 9d3458e2a366..53c05ca514f1 100644
--- a/drivers/dma/pxa_dma.c
+++ b/drivers/dma/pxa_dma.c
@@ -891,6 +891,7 @@  pxad_tx_prep(struct virt_dma_chan *vc, struct virt_dma_desc *vd,
 	struct dma_async_tx_descriptor *tx;
 	struct pxad_chan *chan = container_of(vc, struct pxad_chan, vc);
 
+	INIT_LIST_HEAD(&vd->node);
 	tx = vchan_tx_prep(vc, vd, tx_flags);
 	tx->tx_submit = pxad_tx_submit;
 	dev_dbg(&chan->vc.chan.dev->device,