From mboxrd@z Thu Jan 1 00:00:00 1970 From: vinod.koul@intel.com (Vinod Koul) Date: Mon, 30 Mar 2015 22:55:46 +0530 Subject: [PATCH] dmaengine: pl330: fix the race condition in pl330 driver. In-Reply-To: References: <1427414105-3480-1-git-send-email-sbranden@broadcom.com> Message-ID: <20150330172546.GI7192@intel.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Mon, Mar 30, 2015 at 10:17:17PM +0530, Jassi Brar wrote: > On Fri, Mar 27, 2015 at 5:25 AM, Scott Branden wrote: > > From: ismail > > > > Update the thread running index before issuing the > > GO command to the DMAC. > > > > Tested-by: Mohamed Ismail Abdul Packir Mohamed > > Reviewed-by: Ray Jui > > Reviewed-by: Arun Parameswaran > > Reviewed-by: Scott Branden > > Signed-off-by: Scott Branden > > Signed-off-by: Mohamed Ismail Abdul Packir Mohamed > > --- > > drivers/dma/pl330.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c > > index 0e1f567..631642d 100644 > > --- a/drivers/dma/pl330.c > > +++ b/drivers/dma/pl330.c > > @@ -1072,11 +1072,11 @@ static bool _trigger(struct pl330_thread *thrd) > > /* Set to generate interrupts for SEV */ > > writel(readl(regs + INTEN) | (1 << thrd->ev), regs + INTEN); > > > > + thrd->req_running = idx; > > + > > /* Only manager can execute GO */ > > _execute_DBGINSN(thrd, insn, true); > > > > - thrd->req_running = idx; > > - > It would help to know what the behavior looks like before and after > the patch. If anything we should look at locking rather the > reordering. Yes that ia fair request, looking at changelog it is hard to understand the issue seen? -- ~Vinod