sh: fix DMA driver's descriptor chaining and cookie assignment
commit3542a113ab2f5880f1b62e5909d754250fb57d6b
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Thu, 17 Dec 2009 16:41:39 +0000 (17 09:41 -0700)
committerDan Williams <dan.j.williams@intel.com>
Thu, 17 Dec 2009 16:41:39 +0000 (17 09:41 -0700)
tree30359d2425678ccc84b62c055c19e943a300ecf6
parent4297a462f455e38f08976df7b16c849614a287da
sh: fix DMA driver's descriptor chaining and cookie assignment

The SH DMA driver wrongly assigns negative cookies to transfer descriptors,
also, its chaining of partial descriptors is broken. The latter problem is
usually invisible, because maximum transfer size per chunk is 16M, but if you
artificially set this limit lower, the driver fails. Since cookies are also
used in chunk management, both these problems are fixed in one patch. As side
effects a possible memory leak, when descriptors are prepared, but not
submitted, and multiple races have also been fixed.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Paul Mundt <lethal@linux-sh.org>
Acked-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/dma/shdma.c
drivers/dma/shdma.h