From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by ozlabs.org (Postfix) with ESMTP id 890D5B7D57 for ; Wed, 3 Feb 2010 08:32:51 +1100 (EST) Message-ID: <4B6897BC.60203@intel.com> Date: Tue, 02 Feb 2010 14:23:08 -0700 From: Dan Williams MIME-Version: 1.0 To: "Ira W. Snyder" Subject: Re: [PATCH 8/8] fsldma: major cleanups and fixes References: <1262820846-13198-1-git-send-email-iws@ovro.caltech.edu> <1262820846-13198-9-git-send-email-iws@ovro.caltech.edu> <4B6892F4.9070906@intel.com> <20100202211656.GA2609@ovro.caltech.edu> In-Reply-To: <20100202211656.GA2609@ovro.caltech.edu> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Cc: "R58472@freescale.com" , "B04825@freescale.com" , "linuxppc-dev@ozlabs.org" , "scottwood@freescale.com" , "Dipen.Dudhat@freescale.com" , "Maneesh.Gupta@freescale.com" , "herbert@gondor.apana.org.au" List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Ira W. Snyder wrote: > In the fsldma driver, all callbacks are run from tasklet (softirq) > context. That's under local_irq_disable(), right? Hardirq's certainly > aren't disabled there. Actually, my mistake, the cleanup routine does spin_lock_irqsave(), but I now see that it drops the lock across the callback: /* Run the link descriptor callback function */ if (callback) { spin_unlock_irqrestore(&fsl_chan->desc_lock, flags); dev_dbg(fsl_chan->dev, "link descriptor %p callback\n", desc); callback(callback_param); spin_lock_irqsave(&fsl_chan->desc_lock, flags); } ...so I retract my comment about surprising the raid5 code. -- Dan