async_xor: dma_map destination DMA_BIDIRECTIONAL
commita06d568f7c5e40e34ea64881842deb8f4382babf
authorDan Williams <dan.j.williams@intel.com>
Mon, 8 Dec 2008 20:46:00 +0000 (8 13:46 -0700)
committerDan Williams <dan.j.williams@intel.com>
Mon, 8 Dec 2008 20:46:00 +0000 (8 13:46 -0700)
tree15b38b4652705b7c58bd89052c81ab91ca94cc4a
parentb0b42b16ff2b90f17bc1a4308366c9beba4b276e
async_xor: dma_map destination DMA_BIDIRECTIONAL

Mapping the destination multiple times is a misuse of the dma-api.
Since the destination may be reused as a source, ensure that it is only
mapped once and that it is mapped bidirectionally.  This appears to add
ugliness on the unmap side in that it always reads back the destination
address from the descriptor, but gcc can determine that dma_unmap is a
nop and not emit the code that calculates its arguments.

Cc: <stable@kernel.org>
Cc: Saeed Bishara <saeed@marvell.com>
Acked-by: Yuri Tikhonov <yur@emcraft.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
crypto/async_tx/async_xor.c
drivers/dma/iop-adma.c
drivers/dma/mv_xor.c