[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20180725123010.GR3661@vkoul-mobl>
Date: Wed, 25 Jul 2018 18:00:10 +0530
From: Vinod <vkoul@...nel.org>
To: John Keeping <john@...anate.com>
Cc: dmaengine@...r.kernel.org, Dan Williams <dan.j.williams@...el.com>,
linux-kernel@...r.kernel.org
Subject: Re: [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
Powered by blists - more mailing lists