From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tony Lindgren Subject: Re: [PATCH] dmaengine: cppi41: Fix oops in cppi41_runtime_resume Date: Thu, 12 Jan 2017 14:19:34 -0800 Message-ID: <20170112221933.GM2630@atomide.com> References: <20170112213016.19367-1-tony@atomide.com> <927792da-2e90-b2ae-1206-8fcb504d7551@ti.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <927792da-2e90-b2ae-1206-8fcb504d7551-l0cyMroinI0@public.gmane.org> Sender: linux-usb-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Grygorii Strashko Cc: Dan Williams , Vinod Koul , Bin Liu , Daniel Mack , Felipe Balbi , George Cherian , Johan Hovold , Peter Ujfalusi , Sekhar Nori , Sebastian Andrzej Siewior , dmaengine-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Andy Shevchenko , Kevin Hilman , Patrick Titiano , Sergei Shtylyov List-Id: linux-omap@vger.kernel.org * Grygorii Strashko [170112 13:54]: > On 01/12/2017 03:30 PM, Tony Lindgren wrote: > > Sry, but even if it looks better it might still race with PM runtime :( > > > - if (likely(pm_runtime_active(cdd->ddev.dev))) > > + if (likely(atomic_read(&cdd->active))) > > push_desc_queue(c); > > else > > > - CPU is here (-EINPROGRESS and active == 0) and then preempted > - PM runtime will finish cppi41_runtime_resume and clean-up pending descs > - CPU return here and adds desc to the pending queue > - oops > > Am I wrong? We had cppi41_dma_issue_pending() getting called from atomic contex and cppi41_runtime_resume() getting preempted where cppi41_dma_issue_pending() would add to the queue. If what you're saying can happen in some cases, then we again see the WARN_ON(!list_empty(&cdd->pending)) in cppi41_runtime_suspend(). At least so far I have no longer been able to make happen today. Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html