lkml.org 
[lkml]   [2018]   [Jul]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] dmaengine: pl330: fix irq race with terminate_all
On 17-07-18, 11:48, John Keeping wrote:
> In pl330_update() when checking if a channel has been aborted, the
> channel's lock is not taken, only the overall pl330_dmac lock. But in
> pl330_terminate_all() the aborted flag (req_running==-1) is set under
> the channel lock and not the pl330_dmac lock.
>
> With threaded interrupts, this leads to a potential race:
>
> pl330_terminate_all pl330_update
> ------------------- ------------
> lock channel
> entry
> lock pl330
> _stop channel
> unlock pl330
> lock pl330
> check req_running != -1
> req_running = -1
> _start channel
>

Applied, thanks

--
~Vinod

\
 
 \ /
  Last update: 2018-07-25 14:30    [W:0.048 / U:0.552 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site