This series extends the async_tx api to include support for offloading raid6 operations to hardware. Part 2 covers updates to the iop-adma driver to enable raid6. Part 3 covers the changes to md/raid6 to use the async_tx api for its raid6 computations. A merge of these 3 topic series is available via the raid6 branch of async_tx.git: git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx.git raid6 There are several changes since v1 of the patch set[1]. The primary updates are: 1/ Address H. Peter Anvin's comments around the asynchronous raid6 recovery implementation. It has been rewritten to more closely model the existing recovery implementation [2]. 2/ Address Andre Noll's comment concerning the excessive number of arguments passed to the async_* routines. Common parameters are now passed in a structure. 3/ Address Neil Brown's comment that we should solve the "kernel stack space limits the size of an array" problem with pre-allocated buffers. stripe_head objects now carry a kmalloc'd 'scribble' buffer relieving the stack pressure of raid computations. 4/ Various updates to get the code to pass the new raid6 recovery self test Please review. Thanks, Dan [1] http://marc.info/?l=linux-raid&m=123740421725422&w=2 [2] http://marc.info/?l=linux-raid&m=124096283425451&w=2 --- Dan Williams (11): async_tx: rename zero_sum to val async_tx: kill ASYNC_TX_DEP_ACK flag async_tx: structify submission arguments, add scribble async_xor: permit callers to pass in a 'dma/page scribble' region md/raid5: add scribble region for buffer lists async_tx: add sum check flags async_tx: kill needless module_{init|exit} async_tx: add support for asynchronous GF multiplication async_tx: add support for asynchronous RAID6 recovery operations dmatest: add pq support async_tx: raid6 recovery self test arch/arm/include/asm/hardware/iop3xx-adma.h | 5 arch/arm/mach-iop13xx/include/mach/adma.h | 12 - arch/arm/mach-iop13xx/setup.c | 10 - arch/arm/plat-iop/adma.c | 2 crypto/async_tx/Kconfig | 9 + crypto/async_tx/Makefile | 3 crypto/async_tx/async_memcpy.c | 34 +- crypto/async_tx/async_memset.c | 36 +- crypto/async_tx/async_pq.c | 399 +++++++++++++++++++++++++++ crypto/async_tx/async_raid6_recov.c | 292 ++++++++++++++++++++ crypto/async_tx/async_tx.c | 53 +--- crypto/async_tx/async_xor.c | 168 +++++------ crypto/async_tx/raid6test.c | 212 ++++++++++++++ drivers/dma/Kconfig | 2 drivers/dma/dmaengine.c | 8 - drivers/dma/dmatest.c | 26 ++ drivers/dma/iop-adma.c | 40 +-- drivers/md/Kconfig | 13 + drivers/md/raid5.c | 123 ++++++-- drivers/md/raid5.h | 10 + include/linux/async_tx.h | 103 +++++-- include/linux/dmaengine.h | 87 +++++- 22 files changed, 1347 insertions(+), 300 deletions(-) create mode 100644 crypto/async_tx/async_pq.c create mode 100644 crypto/async_tx/async_raid6_recov.c create mode 100644 crypto/async_tx/raid6test.c -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html