[PATCH v3][for 4.15] dmaengine: dmatest: move callback wait queue to thread context
Dan Williams
dan.j.williams at intel.com
Fri Nov 17 09:33:10 PST 2017
On Fri, Nov 17, 2017 at 9:28 AM, Adam Wallis <awallis at codeaurora.org> 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.
More information about the linux-arm-kernel
mailing list