iop_adma: document how to calculate the minimum descriptor pool size
authorDan Williams <dan.j.williams@intel.com>
Fri, 18 Jul 2008 00:59:56 +0000 (17:59 -0700)
committerDan Williams <dan.j.williams@intel.com>
Fri, 18 Jul 2008 00:59:56 +0000 (17:59 -0700)
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/dma/iop-adma.c

index 8acbc3a..85bfeba 100644 (file)
@@ -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)
 {