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
next prev 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