Yoshihiro Shimoda 3e081628d5 dmaengine: rcar-dmac: Check the done lists in rcar_dmac_chan_get_residue()
This patch fixes an issue that a race condition happens between a client
driver and the rcar-dmac driver:

- The rcar_dmac_isr_transfer_end() is called.
 - The done list appears, and desc.running is the next active list.
- rcar_dmac_chan_get_residue() is called by a client driver before
  rcar_dmac_isr_channel_thread() is called.
 - The rcar_dmac_chan_get_residue() will not find any descriptors.
 - And, the following WARNING happens:
	WARN(1, "No descriptor for cookie!");

The sh-sci driver with HSCIF (921,600bps) on R-Car H3 can cause this
situation.
So, this patch checks the done lists in rcar_dmac_chan_get_residue()
and returns zero if the done lists has the argument cookie.

Tested-by: Nguyen Viet Dung <dung.nguyen.aj@renesas.com>
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
2018-03-05 16:59:35 +05:30
..
2018-02-06 09:59:40 -08:00
2018-02-01 16:35:31 -08:00
2018-02-07 11:22:44 -08:00
2018-02-02 10:01:04 -08:00
2018-02-10 13:16:35 -08:00
2018-02-06 09:59:40 -08:00
2018-02-08 12:03:54 -08:00
2018-02-06 09:59:40 -08:00
2018-02-01 16:35:31 -08:00
2018-02-09 19:32:41 -08:00
2018-01-31 11:32:27 -08:00
2018-02-01 10:31:17 -08:00
2018-02-04 11:16:35 -08:00
2018-02-06 09:59:40 -08:00
2018-02-01 09:40:49 -08:00
2018-01-30 12:25:59 +00:00
2018-02-05 10:07:40 -08:00
2018-02-06 09:59:40 -08:00
2018-02-01 16:35:31 -08:00
2018-01-22 16:45:26 +01:00
2018-02-09 19:32:41 -08:00
2018-02-01 10:31:17 -08:00
2018-02-06 09:59:40 -08:00