async_tx: avoid the async xor_zero_sum path when src_cnt > device->max_xor
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>
This commit is contained in:
Родитель
f79abb627f
Коммит
8d8002f642
|
@ -271,7 +271,7 @@ async_xor_zero_sum(struct page *dest, struct page **src_list,
|
|||
|
||||
BUG_ON(src_cnt <= 1);
|
||||
|
||||
if (device) {
|
||||
if (device && src_cnt <= device->max_xor) {
|
||||
dma_addr_t *dma_src = (dma_addr_t *) src_list;
|
||||
unsigned long dma_prep_flags = cb_fn ? DMA_PREP_INTERRUPT : 0;
|
||||
int i;
|
||||
|
|
Загрузка…
Ссылка в новой задаче