linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/7] fsl-dma: fixes for Freescale DMA driver
@ 2012-07-31 23:45 Ira W. Snyder
  2012-07-31 23:45 ` [PATCH 1/7] fsl-dma: remove attribute DMA_INTERRUPT of dmaengine Ira W. Snyder
                   ` (7 more replies)
  0 siblings, 8 replies; 11+ messages in thread
From: Ira W. Snyder @ 2012-07-31 23:45 UTC (permalink / raw)
  To: linux-crypto; +Cc: B32616, linuxppc-dev, Ira W. Snyder

From: "Ira W. Snyder" <iws@ovro.caltech.edu>

Hello everyone,

This is my alternative (simpler) attempt at solving the problems reported
by Qiang Liu with the async_tx API and MD RAID hardware offload support
when using the Freescale DMA driver.

The bug is caused by this driver freeing descriptors before they have been
ACKed by software using the async_tx API.

I don't like Qiang Liu's code to check where the hardware is in the
processing of the descriptor chain, and try to free a partial list of
descriptors. This was a source of bugs in this driver before I fixed them
several years ago.

Instead, the DMA controller raises an interrupt every time it has completed
a descriptor chain. This means it is ready for new descriptors: no need to
try and figure out where it is in the middle of a descriptor chain.

Qiang Liu: I do not have a hardware setup capable of using MD RAID. Please
test these patches to see if they fix the bug you reported. You may use
these patches as-is, or build upon them.

I have tested this using the drivers/dma/dmatest.c driver, as well as the
CARMA drivers. There are no regressions that I can find.

[  355.069679] dma0chan3-copy0: terminating after 100000 tests, 0 failures (status 0)
[  355.192278] dma0chan2-copy0: terminating after 100000 tests, 0 failures (status 0)

Ira W. Snyder (5):
  fsl-dma: minimize locking overhead
  fsl-dma: add fsl_dma_free_descriptor() to reduce code duplication
  fsl-dma: move functions to avoid forward declarations
  fsl-dma: fix support for async_tx API
  carma: remove unnecessary DMA_INTERRUPT capability

Qiang Liu (2):
  fsl-dma: remove attribute DMA_INTERRUPT of dmaengine
  fsl-dma: fix a warning of unitialized cookie

 drivers/dma/fsldma.c                    |  318 +++++++++++++++----------------
 drivers/dma/fsldma.h                    |    1 +
 drivers/misc/carma/carma-fpga-program.c |    1 -
 drivers/misc/carma/carma-fpga.c         |    3 +-
 4 files changed, 159 insertions(+), 164 deletions(-)

-- 
1.7.8.6

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2012-08-01  6:03 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-31 23:45 [PATCH 0/7] fsl-dma: fixes for Freescale DMA driver Ira W. Snyder
2012-07-31 23:45 ` [PATCH 1/7] fsl-dma: remove attribute DMA_INTERRUPT of dmaengine Ira W. Snyder
2012-07-31 23:45 ` [PATCH 2/7] fsl-dma: minimize locking overhead Ira W. Snyder
2012-07-31 23:45 ` [PATCH 3/7] fsl-dma: add fsl_dma_free_descriptor() to reduce code duplication Ira W. Snyder
2012-07-31 23:45 ` [PATCH 4/7] fsl-dma: move functions to avoid forward declarations Ira W. Snyder
2012-07-31 23:45 ` [PATCH 5/7] fsl-dma: fix support for async_tx API Ira W. Snyder
2012-08-01  6:03   ` Liu Qiang-B32616
2012-07-31 23:45 ` [PATCH 6/7] fsl-dma: fix a warning of unitialized cookie Ira W. Snyder
2012-07-31 23:45 ` [PATCH 7/7] carma: remove unnecessary DMA_INTERRUPT capability Ira W. Snyder
2012-08-01  3:56   ` Liu Qiang-B32616
2012-08-01  3:47 ` [PATCH 0/7] fsl-dma: fixes for Freescale DMA driver Liu Qiang-B32616

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).