public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Tomasz Figa <t.figa@samsung.com>
To: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Cc: linux-kernel@vger.kernel.org, djbw@fb.com, dwmw2@infradead.org,
	hskinnemoen@gmail.com, iws@ovro.caltech.edu,
	vinod.koul@intel.com, vipin.kumar@st.com,
	kyungmin.park@samsung.com
Subject: Re: [PATCH 00/20] DMA: DMA unmap fixes
Date: Tue, 06 Nov 2012 11:12:52 +0100	[thread overview]
Message-ID: <1991743.bB6HhaiITg@amdc1227> (raw)
In-Reply-To: <1352109631-3385-1-git-send-email-b.zolnierkie@samsung.com>

Hi Bart,

On Monday 05 of November 2012 11:00:11 Bartlomiej Zolnierkiewicz wrote:
> Hi,
> 
> Currently DMA subsystem does DMA mapping in the core code and DMA
> unmapping is done by device drivers.  This is counterintuitive,
> causes code duplication and subtle errors (some drivers like PL330
> one don't implement DMA unmapping code).  The following patchset
> modifies DMA subsystem to do DMA unmapping in the core code.
> It results in simpler code, less code duplication (more than 400
> LOC is gone) and fixes the issue with missing DMA unmapping code
> in some drivers.  Additionally many cases when DMA wasn't unmapped
> on a failure are also fixed.
> 
> 
> patches #1-3 add missing DMA unmap on failure to async_tx core
> code (async_memcpy()), ioat and fsmc_nand drivers
> 
> patch #4 fixes DMA flags used by carma-fpga driver
> 
> patches #5-7 fix core code and dmatest driver to DMA unmap for
> MEMCPY operations
> 
> patch #8 adds missing DMA unmap on failure to ioat3 driver
> 
> patch #9 fixes build for async_memset.c
> 
> patch #10 adds missing DMA unmap on failure to async tx core
> code (async_memset())
> 
> patches #11-18 fix async_tx core code and dmatest driver to do
> DMA unmap for MEMSET, XOR, XOR_VAL, PQ and PQ_VAL operations
> 
> patches #19-20 remove no longer needed DMA unmap code from
> device drivers and DMA unmap flags from code code
> 
> 
> This patchset was tested on PL330 DMA controller using MEMCPY
> operations.  It would be great if somebody could test it on
> more advanced controller capable of MEMSET, XOR, XOR_VAL,
> PQ and PQ_VAL operations (especially since the conversion of
> XOR and PQ operations was not obvious).
> 
> 
> Bartlomiej Zolnierkiewicz (20):
>   async_tx: add missing DMA unmap to async_memcpy()
>   ioat: add missing DMA unmap to ioat_dma_self_test()
>   mtd: fsmc_nand: add missing DMA unmap to dma_xfer()
>   carma-fpga: pass correct flags to ->device_prep_dma_memcpy()
>   dmatest: do DMA unmap for MEMCPY operations
>   DMA: do DMA unmap in core for MEMCPY operations
>   async_tx: do DMA unmap in core for MEMCPY operations
>   ioat3: add missing DMA unmap to ioat_xor_val_self_test()
>   async_tx: fix build for async_memset
>   async_tx: add missing DMA unmap to async_memset()
>   async_tx: do DMA unmap in core for MEMSET operations
>   dmatest: do DMA unmap for XOR operations
>   async_tx: do DMA unmap in core for XOR operations
>   async_tx: do DMA unmap in core for XOR_VAL operations
>   dmatest: do DMA unmap for PQ operations
>   async_tx: do DMA unmap in async_raid6_recov.c for PQ operations
>   async_tx: do DMA unmap in core for PQ operations
>   async_tx: do DMA unmap in core for PQ_VAL operations
>   DMA: remove DMA unmap from drivers
>   DMA: remove DMA unmap flags
> 
>  arch/arm/include/asm/hardware/iop3xx-adma.h |  30 ----
>  arch/arm/mach-iop13xx/include/mach/adma.h   |  26 ---
>  crypto/async_tx/async_memcpy.c              |  27 ++-
>  crypto/async_tx/async_memset.c              |  23 ++-
>  crypto/async_tx/async_pq.c                  | 129 +++++++++----
>  crypto/async_tx/async_raid6_recov.c         |  42 ++++-
>  crypto/async_tx/async_tx.c                  |  25 ++-
>  crypto/async_tx/async_xor.c                 |  98 +++++++---
>  drivers/ata/pata_arasan_cf.c                |   3 +-
>  drivers/dma/amba-pl08x.c                    |  31 ----
>  drivers/dma/at_hdmac.c                      |  25 ---
>  drivers/dma/dmaengine.c                     |  59 +++++-
>  drivers/dma/dmatest.c                       |  14 +-
>  drivers/dma/dw_dmac.c                       |  20 ---
>  drivers/dma/ep93xx_dma.c                    |  32 +---
>  drivers/dma/fsldma.c                        |  16 --
>  drivers/dma/ioat/dma.c                      |  28 +--
>  drivers/dma/ioat/dma.h                      |  12 --
>  drivers/dma/ioat/dma_v2.c                   |   1 -
>  drivers/dma/ioat/dma_v3.c                   | 179 +++++-------------
>  drivers/dma/iop-adma.c                      |  70 +-------
>  drivers/dma/mv_xor.c                        |  45 +----
>  drivers/dma/ppc4xx/adma.c                   | 270
> ---------------------------- drivers/dma/timb_dma.c                    
>  |  36 ----
>  drivers/dma/txx9dmac.c                      |  24 ---
>  drivers/media/platform/m2m-deinterlace.c    |   3 +-
>  drivers/media/platform/timblogiw.c          |   2 +-
>  drivers/misc/carma/carma-fpga.c             |   3 +-
>  drivers/mtd/nand/atmel_nand.c               |   3 +-
>  drivers/mtd/nand/fsmc_nand.c                |  20 ++-
>  drivers/net/ethernet/micrel/ks8842.c        |   6 +-
>  drivers/spi/spi-dw-mid.c                    |   4 +-
>  include/linux/async_tx.h                    |   4 +
>  include/linux/dmaengine.h                   |  34 ++--
>  34 files changed, 446 insertions(+), 898 deletions(-)

For all patches:

Reviewed-by: Tomasz Figa <t.figa@samsung.com>

Best regards,
-- 
Tomasz Figa
Samsung Poland R&D Center
SW Solution Development, Linux Platform


  parent reply	other threads:[~2012-11-06 10:13 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-05 10:00 [PATCH 00/20] DMA: DMA unmap fixes Bartlomiej Zolnierkiewicz
2012-11-05 10:00 ` [PATCH 01/20] async_tx: add missing DMA unmap to async_memcpy() Bartlomiej Zolnierkiewicz
2012-11-05 10:00 ` [PATCH 02/20] ioat: add missing DMA unmap to ioat_dma_self_test() Bartlomiej Zolnierkiewicz
2012-11-05 10:00 ` [PATCH 03/20] mtd: fsmc_nand: add missing DMA unmap to dma_xfer() Bartlomiej Zolnierkiewicz
2012-11-05 10:00 ` [PATCH 04/20] carma-fpga: pass correct flags to ->device_prep_dma_memcpy() Bartlomiej Zolnierkiewicz
2012-11-05 10:00 ` [PATCH 05/20] dmatest: do DMA unmap for MEMCPY operations Bartlomiej Zolnierkiewicz
2012-11-05 10:00 ` [PATCH 06/20] DMA: do DMA unmap in core " Bartlomiej Zolnierkiewicz
2012-11-05 10:00 ` [PATCH 07/20] async_tx: " Bartlomiej Zolnierkiewicz
2012-11-05 10:00 ` [PATCH 08/20] ioat3: add missing DMA unmap to ioat_xor_val_self_test() Bartlomiej Zolnierkiewicz
2012-11-05 10:00 ` [PATCH 09/20] async_tx: fix build for async_memset Bartlomiej Zolnierkiewicz
2012-11-05 10:00 ` [PATCH 10/20] async_tx: add missing DMA unmap to async_memset() Bartlomiej Zolnierkiewicz
2012-11-05 10:00 ` [PATCH 11/20] async_tx: do DMA unmap in core for MEMSET operations Bartlomiej Zolnierkiewicz
2012-11-05 10:00 ` [PATCH 12/20] dmatest: do DMA unmap for XOR operations Bartlomiej Zolnierkiewicz
2012-11-05 10:00 ` [PATCH 13/20] async_tx: do DMA unmap in core " Bartlomiej Zolnierkiewicz
2012-11-07 20:56   ` Dan Williams
2012-11-19  9:52   ` Dan Williams
2012-11-05 10:00 ` [PATCH 14/20] async_tx: do DMA unmap in core for XOR_VAL operations Bartlomiej Zolnierkiewicz
2012-11-05 10:00 ` [PATCH 15/20] dmatest: do DMA unmap for PQ operations Bartlomiej Zolnierkiewicz
2012-11-05 10:00 ` [PATCH 16/20] async_tx: do DMA unmap in async_raid6_recov.c " Bartlomiej Zolnierkiewicz
2012-11-05 10:00 ` [PATCH 17/20] async_tx: do DMA unmap in core " Bartlomiej Zolnierkiewicz
2012-11-05 10:00 ` [PATCH 18/20] async_tx: do DMA unmap in core for PQ_VAL operations Bartlomiej Zolnierkiewicz
2012-11-05 10:00 ` [PATCH 19/20] DMA: remove DMA unmap from drivers Bartlomiej Zolnierkiewicz
2012-11-05 10:00 ` [PATCH 20/20] DMA: remove DMA unmap flags Bartlomiej Zolnierkiewicz
2012-11-05 19:34 ` [PATCH 00/20] DMA: DMA unmap fixes Ira W. Snyder
2012-11-06 10:12 ` Tomasz Figa [this message]
2012-11-07 20:40 ` Dan Williams
2012-11-30 10:57   ` Bartlomiej Zolnierkiewicz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1991743.bB6HhaiITg@amdc1227 \
    --to=t.figa@samsung.com \
    --cc=b.zolnierkie@samsung.com \
    --cc=djbw@fb.com \
    --cc=dwmw2@infradead.org \
    --cc=hskinnemoen@gmail.com \
    --cc=iws@ovro.caltech.edu \
    --cc=kyungmin.park@samsung.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=vinod.koul@intel.com \
    --cc=vipin.kumar@st.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox