diff options
author | Dan Williams <dan.j.williams@intel.com> | 2008-03-19 04:40:04 +0000 |
---|---|---|
committer | Chris Wright <chrisw@sous-sol.org> | 2008-03-24 11:48:26 -0700 |
commit | 5d51c29a9ccf12c169c13d155a22b5e683280604 (patch) | |
tree | 761fafe056979a1c6ffccc836d428724a3153b86 /crypto | |
parent | 0db49fc729eee503836ea12745b55f7f802d2abb (diff) |
async_tx: avoid the async xor_zero_sum path when src_cnt > device->max_xor
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>
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/async_tx/async_xor.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/crypto/async_tx/async_xor.c b/crypto/async_tx/async_xor.c index 2575f674dcd5..5c579d29435f 100644 --- a/crypto/async_tx/async_xor.c +++ b/crypto/async_tx/async_xor.c @@ -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; |