On Fri, Nov 17, 2017 at 9:28 AM, Adam Wallis <awallis@xxxxxxxxxxxxxx> wrote: > On 11/17/2017 12:01 PM, Adam Wallis wrote: [..] >> Dan >> An important part of my patch was severed in this v3 submission. My apologies. >> >> There is a change that addresses, I believe, your concern that was in v2 >> >> /* terminate all transfers on specified channels */ >> - if (ret) >> + if (ret || failed_tests) >> dmaengine_terminate_all(chan); >> >> Will clean up again, retest, and resubmit. Thanks for your patience and instruction. > > Dan, I thought the patch was truncated, but it's all there in V3. I should have > finished my coffee before responding. You are absolutely right that in the timed > out case that dmaengine_terminate_all(chan) should be called, and that change is > in fact already included in this patch set > > @@ -789,7 +782,7 @@ static int dmatest_func(void *data) > dmatest_KBs(runtime, total_len), ret); > > /* terminate all transfers on specified channels */ > - if (ret) > + if (ret || failed_tests) > dmaengine_terminate_all(chan); > > Would you prefer that I add a better description in the commit text to address > the fact this was in fact added? Ah, sorry I overlooked that. What about the case where the dmaengine does not support the terminate_all operation? I think we should WARN in that case, but that's also where the per-operation allocation of a done variable can prevent done notifications leaking between operations. -- To unsubscribe from this list: send the line "unsubscribe dmaengine" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html