async_tx: fix handling of the "out of descriptor" condition in async_xor
authorDan Williams <dan.j.williams@intel.com>
Fri, 18 Jul 2008 00:59:55 +0000 (17:59 -0700)
committerDan Williams <dan.j.williams@intel.com>
Fri, 18 Jul 2008 00:59:55 +0000 (17:59 -0700)
commit669ab0b210f9bd15d94d4d6a49ae13366a85e4da
treeead561418e94def95c4d4b4512ae3c9a7888febe
parent1e55db2d6bdef92abc981b68673564e63c80da4d
async_tx: fix handling of the "out of descriptor" condition in async_xor

Ensure forward progress is made when a dmaengine driver is unable to
allocate an xor descriptor by breaking the dependency chain with
async_tx_quisce() and issue any pending descriptors.

Tested with iop-adma by setting device->max_xor = 2 to force multiple
calls to device_prep_dma_xor for each call to async_xor and limiting the
descriptor slot pool to 5.  Discovered that the minimum descriptor pool
size for iop-adma is 2 * iop_chan_xor_slot_cnt(device->max_xor) + 1.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
crypto/async_tx/async_xor.c