]> git.hungrycats.org Git - linux/commitdiff
async_tx: avoid the async xor_zero_sum path when src_cnt > device->max_xor
authorDan Williams <dan.j.williams@intel.com>
Wed, 19 Mar 2008 04:40:04 +0000 (04:40 +0000)
committerChris Wright <chrisw@sous-sol.org>
Mon, 24 Mar 2008 18:48:26 +0000 (11:48 -0700)
commit: 8d8002f642886ae256a3c5d70fe8aff4faf3631a

If the channel cannot perform the operation in one call to
->device_prep_dma_zero_sum, then fallback to the xor+page_is_zero path.
This only affects users with arrays larger than 16 devices on iop13xx or
32 devices on iop3xx.

Cc: <stable@kernel.org>
Cc: Neil Brown <neilb@suse.de>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
[chrisw@sous-sol.org: backport to 2.6.24.3]
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
crypto/async_tx/async_xor.c

index 2575f674dcd5ee226cb2a29f946e27ab9b9b7c1a..5c579d29435f1cb60fdf19152237201f86b43812 100644 (file)
@@ -264,7 +264,7 @@ async_xor_zero_sum(struct page *dest, struct page **src_list,
 
        BUG_ON(src_cnt <= 1);
 
-       if (tx) {
+       if (tx && src_cnt <= device->max_xor) {
                dma_addr_t dma_addr;
                enum dma_data_direction dir;