aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2008-03-19 04:40:04 +0000
committerChris Wright <chrisw@sous-sol.org>2008-03-24 11:48:26 -0700
commit5d51c29a9ccf12c169c13d155a22b5e683280604 (patch)
tree761fafe056979a1c6ffccc836d428724a3153b86
parent0db49fc729eee503836ea12745b55f7f802d2abb (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>
-rw-r--r--crypto/async_tx/async_xor.c2
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;