Re: [PATCH] drivers/dma/dma-jz4780: Fix race condition between probe and irq handler

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

 



On Thu, Aug 20, 2020 at 08:46:43PM +0200, Paul Cercueil wrote:
> 
> 
> Le jeu. 20 août 2020 à 20:23, Lars-Peter Clausen <lars@xxxxxxxxxx> a écrit :
> > On 8/20/20 1:59 PM, Paul Cercueil wrote:
> > > Hi,
> > > 
> > > Le dim. 16 août 2020 à 12:52, madhuparnabhowmik10@xxxxxxxxx a écrit
> > > :
> > > > From: Madhuparna Bhowmik <madhuparnabhowmik10@xxxxxxxxx>
> > > > 
> > > > In probe IRQ is requested before zchan->id is initialized which
> > > > can be
> > > > read in the irq handler. Hence, shift request irq and enable
> > > > clock after
> > > > other initializations complete. Here, enable clock part is not
> > > > part of
> > > > the race, it is just shifted down after request_irq to keep the
> > > > error
> > > > path same as before.
> > > > 
> > > > Found by Linux Driver Verification project (linuxtesting.org).
> > > > 
> > > > Signed-off-by: Madhuparna Bhowmik <madhuparnabhowmik10@xxxxxxxxx>
> > > 
> > > I don't think there is a race at all, the interrupt handler won't be
> > > called before the DMA is registered.
> > > 
> > From a purely formal verification perspective there is a bug. The
> > interrupt could fire if i.e. the hardware is buggy or something. In
> > general it is a good idea to not request the IRQ until all the resources
> > that are used in the interrupt handler are properly set up. Even if you
> > know that in practice the interrupt will never fire this early.
> > 
>
> Fair enough, I'm fine with that, but the patch should be reworked so that
> the clk_prepare_enable() call is not moved.
>

Sure, I will send the v2 of the patch with this change soon.

Thanks,
Madhuparna
> Cheers,
> -Paul
> 
> 




[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