summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2008-07-18 02:59:56 +0200
committerDan Williams <dan.j.williams@intel.com>2008-07-18 02:59:56 +0200
commit5eb907aaaf7a316a0097ff9f8c21bf9fc468a1f1 (patch)
tree33238b492dc0f823e59586ca2a2ec981c3ba9f74
parentiop_adma: directly reclaim descriptors on allocation failure (diff)
downloadlinux-5eb907aaaf7a316a0097ff9f8c21bf9fc468a1f1.tar.xz
linux-5eb907aaaf7a316a0097ff9f8c21bf9fc468a1f1.zip
iop_adma: document how to calculate the minimum descriptor pool size
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
-rw-r--r--drivers/dma/iop-adma.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/dma/iop-adma.c b/drivers/dma/iop-adma.c
index 8acbc3ab0b92..85bfeba4d85e 100644
--- a/drivers/dma/iop-adma.c
+++ b/drivers/dma/iop-adma.c
@@ -450,7 +450,16 @@ iop_adma_tx_submit(struct dma_async_tx_descriptor *tx)
static void iop_chan_start_null_memcpy(struct iop_adma_chan *iop_chan);
static void iop_chan_start_null_xor(struct iop_adma_chan *iop_chan);
-/* returns the number of allocated descriptors */
+/**
+ * iop_adma_alloc_chan_resources - returns the number of allocated descriptors
+ * @chan - allocate descriptor resources for this channel
+ * @client - current client requesting the channel be ready for requests
+ *
+ * Note: We keep the slots for 1 operation on iop_chan->chain at all times. To
+ * avoid deadlock, via async_xor, num_descs_in_pool must at a minimum be
+ * greater than 2x the number slots needed to satisfy a device->max_xor
+ * request.
+ * */
static int iop_adma_alloc_chan_resources(struct dma_chan *chan,
struct dma_client *client)
{