From: viresh.kumar@st.com (viresh kumar)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/6] dmaengine/dw_dmac: Replace spin_lock_bh with irqsave variants
Date: Wed, 27 Apr 2011 11:29:49 +0530 [thread overview]
Message-ID: <4DB7B0D5.5050504@st.com> (raw)
In-Reply-To: <20110426203306.GC17290@n2100.arm.linux.org.uk>
On 04/27/2011 02:03 AM, Russell King - ARM Linux wrote:
> On Tue, Apr 19, 2011 at 11:55:45AM +0530, viresh kumar wrote:
>> This must have been added in dw_dma_chan instead :(
>> Will resend it.
>
> Even that doesn't work. It has to be a local variable.
Hello,
There are two kinds of locks taken in dw_dmac: spin_lock_bh and spin_lock.
spin_lock_bh is taken from routines called from external drivers and spin_lock
taken inside tasklet.
For reasons mentioned earlier, spin_lock_bh has to be replaced with spin_lock_irqsave.
Now, Is simple spin_lock() sufficient inside tasklet?? As dma API's can be called
from interrupt context (which will try to take spin_lock_irqsave).
I think spin_lock must be replaced with irqsave variants, even in tasklet.
Now if we do that, do we need this tasklet at all??
--
viresh
WARNING: multiple messages have this Message-ID (diff)
From: viresh kumar <viresh.kumar@st.com>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>,
"vinod.koul@intel.com" <vinod.koul@intel.com>
Cc: "dan.j.williams@intel.com" <dan.j.williams@intel.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
Armando VISCONTI <armando.visconti@st.com>,
Shiraz HASHIM <shiraz.hashim@st.com>, amitgoel <amit.goel@st.com>,
"viresh.linux@gmail.com" <viresh.linux@gmail.com>,
"jamie@jamieiles.com" <jamie@jamieiles.com>
Subject: Re: [PATCH 1/6] dmaengine/dw_dmac: Replace spin_lock_bh with irqsave variants
Date: Wed, 27 Apr 2011 11:29:49 +0530 [thread overview]
Message-ID: <4DB7B0D5.5050504@st.com> (raw)
In-Reply-To: <20110426203306.GC17290@n2100.arm.linux.org.uk>
On 04/27/2011 02:03 AM, Russell King - ARM Linux wrote:
> On Tue, Apr 19, 2011 at 11:55:45AM +0530, viresh kumar wrote:
>> This must have been added in dw_dma_chan instead :(
>> Will resend it.
>
> Even that doesn't work. It has to be a local variable.
Hello,
There are two kinds of locks taken in dw_dmac: spin_lock_bh and spin_lock.
spin_lock_bh is taken from routines called from external drivers and spin_lock
taken inside tasklet.
For reasons mentioned earlier, spin_lock_bh has to be replaced with spin_lock_irqsave.
Now, Is simple spin_lock() sufficient inside tasklet?? As dma API's can be called
from interrupt context (which will try to take spin_lock_irqsave).
I think spin_lock must be replaced with irqsave variants, even in tasklet.
Now if we do that, do we need this tasklet at all??
--
viresh
next prev parent reply other threads:[~2011-04-27 5:59 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-18 10:49 [PATCH 1/6] dmaengine/dw_dmac: Replace spin_lock_bh with irqsave variants Viresh Kumar
2011-04-18 10:49 ` Viresh Kumar
2011-04-18 10:50 ` [PATCH 2/6] dmaengine/dw_dmac: Enable resubmission from callback routine Viresh Kumar
2011-04-18 10:50 ` Viresh Kumar
2011-04-19 6:12 ` Koul, Vinod
2011-04-19 6:12 ` Koul, Vinod
2011-04-19 6:23 ` viresh kumar
2011-04-19 6:23 ` viresh kumar
2011-04-19 6:33 ` Koul, Vinod
2011-04-19 6:33 ` Koul, Vinod
2011-04-19 6:46 ` viresh kumar
2011-04-19 6:46 ` viresh kumar
2011-04-26 20:31 ` Russell King - ARM Linux
2011-04-26 20:31 ` Russell King - ARM Linux
2011-04-18 10:50 ` [PATCH 3/6] dmaengine/dw_dmac: call dwc_descriptor_complete from dwc_control with lock held Viresh Kumar
2011-04-18 10:50 ` Viresh Kumar
2011-04-18 10:50 ` [PATCH 4/6] dmaengine/dw_dmac: don't call callback routine in case dmaengine_terminate_all() is called Viresh Kumar
2011-04-18 10:50 ` Viresh Kumar
2011-04-18 10:50 ` [PATCH 5/6] dmaengine/dw_dmac: set residue as total len in dwc_tx_status if status is !DMA_SUCCESS Viresh Kumar
2011-04-18 10:50 ` Viresh Kumar
2011-04-18 10:50 ` [PATCH 6/6] dmaengine/dw_dmac: Divide one sg to many desc, if sg len is greater than DWC_MAX_COUNT Viresh Kumar
2011-04-18 10:50 ` Viresh Kumar
2011-04-19 6:25 ` [PATCH 1/6] dmaengine/dw_dmac: Replace spin_lock_bh with irqsave variants viresh kumar
2011-04-19 6:25 ` viresh kumar
2011-04-26 20:33 ` Russell King - ARM Linux
2011-04-26 20:33 ` Russell King - ARM Linux
2011-04-27 3:47 ` viresh kumar
2011-04-27 3:47 ` viresh kumar
2011-04-27 5:59 ` viresh kumar [this message]
2011-04-27 5:59 ` viresh kumar
2011-04-27 7:28 ` Russell King - ARM Linux
2011-04-27 7:28 ` Russell King - ARM Linux
2011-04-26 20:30 ` Russell King - ARM Linux
2011-04-26 20:30 ` Russell King - ARM Linux
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4DB7B0D5.5050504@st.com \
--to=viresh.kumar@st.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.