linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 3/6] dma: coh901318_lli: avoid unbalanced locking
       [not found] <1360666720-19006-1-git-send-email-andriy.shevchenko@linux.intel.com>
@ 2013-02-12 10:58 ` Andy Shevchenko
  2013-02-12 15:57   ` Viresh Kumar
  2013-02-15 14:52   ` Linus Walleij
  2013-02-12 10:58 ` [PATCH 4/6] dma: coh901318_lli: set residue only if dma is in progress Andy Shevchenko
  1 sibling, 2 replies; 7+ messages in thread
From: Andy Shevchenko @ 2013-02-12 10:58 UTC (permalink / raw)
  To: linux-arm-kernel

I have not checked the code but there is a possibility that custom pool->lock
is not needed at all due to dma_pool contains it's own lock.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: linux-arm-kernel at lists.infradead.org
---
 drivers/dma/coh901318_lli.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/coh901318_lli.c b/drivers/dma/coh901318_lli.c
index 3e96610..702112d 100644
--- a/drivers/dma/coh901318_lli.c
+++ b/drivers/dma/coh901318_lli.c
@@ -61,7 +61,7 @@ coh901318_lli_alloc(struct coh901318_pool *pool, unsigned int len)
 	dma_addr_t phy;
 
 	if (len == 0)
-		goto err;
+		return NULL;
 
 	spin_lock(&pool->lock);
 
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 4/6] dma: coh901318_lli: set residue only if dma is in progress
       [not found] <1360666720-19006-1-git-send-email-andriy.shevchenko@linux.intel.com>
  2013-02-12 10:58 ` [PATCH 3/6] dma: coh901318_lli: avoid unbalanced locking Andy Shevchenko
@ 2013-02-12 10:58 ` Andy Shevchenko
  2013-02-15 14:53   ` Linus Walleij
  1 sibling, 1 reply; 7+ messages in thread
From: Andy Shevchenko @ 2013-02-12 10:58 UTC (permalink / raw)
  To: linux-arm-kernel

When status is DMA_SUCCESS the residue should be zero. Otherwise it's a bug.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: linux-arm-kernel at lists.infradead.org
---
 drivers/dma/coh901318.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/dma/coh901318.c b/drivers/dma/coh901318.c
index a2f079a..797940e 100644
--- a/drivers/dma/coh901318.c
+++ b/drivers/dma/coh901318.c
@@ -2355,7 +2355,9 @@ coh901318_tx_status(struct dma_chan *chan, dma_cookie_t cookie,
 	enum dma_status ret;
 
 	ret = dma_cookie_status(chan, cookie, txstate);
-	/* FIXME: should be conditional on ret != DMA_SUCCESS? */
+	if (ret == DMA_SUCCESS)
+		return ret;
+
 	dma_set_residue(txstate, coh901318_get_bytes_left(chan));
 
 	if (ret == DMA_IN_PROGRESS && cohc->stopped)
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/6] dma: coh901318_lli: avoid unbalanced locking
  2013-02-12 10:58 ` [PATCH 3/6] dma: coh901318_lli: avoid unbalanced locking Andy Shevchenko
@ 2013-02-12 15:57   ` Viresh Kumar
  2013-02-15 14:52   ` Linus Walleij
  1 sibling, 0 replies; 7+ messages in thread
From: Viresh Kumar @ 2013-02-12 15:57 UTC (permalink / raw)
  To: linux-arm-kernel

On 12 February 2013 16:28, Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
> I have not checked the code but there is a possibility that custom pool->lock
> is not needed at all due to dma_pool contains it's own lock.

Your viewpoint is fine, but we wanted the reason behind this patch
here. Please add appropriate stuff in only in logs.

> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: linux-arm-kernel at lists.infradead.org
> ---
>  drivers/dma/coh901318_lli.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/dma/coh901318_lli.c b/drivers/dma/coh901318_lli.c
> index 3e96610..702112d 100644
> --- a/drivers/dma/coh901318_lli.c
> +++ b/drivers/dma/coh901318_lli.c
> @@ -61,7 +61,7 @@ coh901318_lli_alloc(struct coh901318_pool *pool, unsigned int len)
>         dma_addr_t phy;
>
>         if (len == 0)
> -               goto err;
> +               return NULL;
>
>         spin_lock(&pool->lock);
>
> --
> 1.7.10.4
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 3/6] dma: coh901318_lli: avoid unbalanced locking
  2013-02-12 10:58 ` [PATCH 3/6] dma: coh901318_lli: avoid unbalanced locking Andy Shevchenko
  2013-02-12 15:57   ` Viresh Kumar
@ 2013-02-15 14:52   ` Linus Walleij
  2013-02-15 14:56     ` Andy Shevchenko
  1 sibling, 1 reply; 7+ messages in thread
From: Linus Walleij @ 2013-02-15 14:52 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Feb 12, 2013 at 11:58 AM, Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:

> I have not checked the code but there is a possibility that custom pool->lock
> is not needed at all due to dma_pool contains it's own lock.

Can you please change the description to something like:

"The coh901318_lli allocator releases a lock on the exit path without
taking it first".

Which is what the patch is actually fixing.

After that it's Acked-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 4/6] dma: coh901318_lli: set residue only if dma is in progress
  2013-02-12 10:58 ` [PATCH 4/6] dma: coh901318_lli: set residue only if dma is in progress Andy Shevchenko
@ 2013-02-15 14:53   ` Linus Walleij
  0 siblings, 0 replies; 7+ messages in thread
From: Linus Walleij @ 2013-02-15 14:53 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Feb 12, 2013 at 11:58 AM, Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:

> When status is DMA_SUCCESS the residue should be zero. Otherwise it's a bug.

Acked-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 3/6] dma: coh901318_lli: avoid unbalanced locking
  2013-02-15 14:52   ` Linus Walleij
@ 2013-02-15 14:56     ` Andy Shevchenko
  2013-02-15 20:52       ` Linus Walleij
  0 siblings, 1 reply; 7+ messages in thread
From: Andy Shevchenko @ 2013-02-15 14:56 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Feb 15, 2013 at 4:52 PM, Linus Walleij <linus.walleij@linaro.org> wrote:
> On Tue, Feb 12, 2013 at 11:58 AM, Andy Shevchenko
> <andriy.shevchenko@linux.intel.com> wrote:
>
>> I have not checked the code but there is a possibility that custom pool->lock
>> is not needed at all due to dma_pool contains it's own lock.
>
> Can you please change the description to something like:
>
> "The coh901318_lli allocator releases a lock on the exit path without
> taking it first".

In v2 (that by fact already applied) I put following description:

    In case the len is 0 we must return without trying to unlock the
lock that was
    not locked.

Does it fit your suggestion?

-- 
With Best Regards,
Andy Shevchenko

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 3/6] dma: coh901318_lli: avoid unbalanced locking
  2013-02-15 14:56     ` Andy Shevchenko
@ 2013-02-15 20:52       ` Linus Walleij
  0 siblings, 0 replies; 7+ messages in thread
From: Linus Walleij @ 2013-02-15 20:52 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Feb 15, 2013 at 3:56 PM, Andy Shevchenko
<andy.shevchenko@gmail.com> wrote:
> On Fri, Feb 15, 2013 at 4:52 PM, Linus Walleij <linus.walleij@linaro.org> wrote:
>> On Tue, Feb 12, 2013 at 11:58 AM, Andy Shevchenko
>> <andriy.shevchenko@linux.intel.com> wrote:
>>
>>> I have not checked the code but there is a possibility that custom pool->lock
>>> is not needed at all due to dma_pool contains it's own lock.
>>
>> Can you please change the description to something like:
>>
>> "The coh901318_lli allocator releases a lock on the exit path without
>> taking it first".
>
> In v2 (that by fact already applied) I put following description:
>
>     In case the len is 0 we must return without trying to unlock the
> lock that was
>     not locked.
>
> Does it fit your suggestion?

Sure, acked-by.

Thanks,
Linus Walleij

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-02-15 20:52 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1360666720-19006-1-git-send-email-andriy.shevchenko@linux.intel.com>
2013-02-12 10:58 ` [PATCH 3/6] dma: coh901318_lli: avoid unbalanced locking Andy Shevchenko
2013-02-12 15:57   ` Viresh Kumar
2013-02-15 14:52   ` Linus Walleij
2013-02-15 14:56     ` Andy Shevchenko
2013-02-15 20:52       ` Linus Walleij
2013-02-12 10:58 ` [PATCH 4/6] dma: coh901318_lli: set residue only if dma is in progress Andy Shevchenko
2013-02-15 14:53   ` Linus Walleij

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).