async_tx: ensure the xor destination buffer remains dma-mapped
authorDan Williams <dan.j.williams@intel.com>
Thu, 17 Jul 2008 02:44:56 +0000 (19:44 -0700)
committerDan Williams <dan.j.williams@intel.com>
Fri, 18 Jul 2008 00:59:55 +0000 (17:59 -0700)
commit1e55db2d6bdef92abc981b68673564e63c80da4d
treeac3cd7c249735772df8c08b1d803563bad854527
parent20fc190b0ef58bf8b3b0bff9de122083956f82ec
async_tx: ensure the xor destination buffer remains dma-mapped

When the number of source buffers for an xor operation exceeds the hardware
channel maximum async_xor creates a chain of dependent operations.  The result
of one operation is reused as an input to the next to continue the xor
calculation.  The destination buffer should remain mapped for the duration of
the entire chain.  To provide this guarantee the code must no longer be allowed
to fallback to the synchronous path as this will preclude the buffer from being
unmapped, i.e. the dma-driver will potentially miss the descriptor with
!DMA_COMPL_SKIP_DEST_UNMAP.

Cc: Neil Brown <neilb@suse.de>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
crypto/async_tx/async_xor.c