async_tx: fix kmap_atomic usage in async_memcpy
authorDan Williams <dan.j.williams@intel.com>
Fri, 20 Jul 2007 07:31:46 +0000 (00:31 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Fri, 20 Jul 2007 15:44:19 +0000 (08:44 -0700)
commiteb0645a8b1f14da300f40bb9f424640cd1181fbf
tree462789626fcd1775bec80d74d19bcd68797589c8
parent7c6129c68fe90a61166800b40217a850b8faee98
async_tx: fix kmap_atomic usage in async_memcpy

Andrew Morton:
[async_memcpy] is very wrong if both ASYNC_TX_KMAP_DST and
ASYNC_TX_KMAP_SRC can ever be set.  We'll end up using the same kmap
slot for both src add dest and we get either corrupted data or a BUG.

Evgeniy Polyakov:
Btw, shouldn't it always be kmap_atomic() even if flag is not set.
That pages are usual one returned by alloc_page().

So fix the usage of kmap_atomic and kill the ASYNC_TX_KMAP_DST and
ASYNC_TX_KMAP_SRC flags.

Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
crypto/async_tx/async_memcpy.c
drivers/md/raid5.c
include/linux/async_tx.h