Re: [PATCH] dmaengine: pl330: fix irq race with terminate_all

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
--
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



[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux PCI]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux