All of lore.kernel.org
 help / color / mirror / Atom feed
From: gregory.clement@free-electrons.com (Gregory CLEMENT)
To: linux-arm-kernel@lists.infradead.org
Subject: [BUG][mvebu] mvneta: cannot request irq 25 on openblocks-ax3
Date: Wed, 20 Mar 2013 16:09:03 +0100	[thread overview]
Message-ID: <5149D10F.40605@free-electrons.com> (raw)
In-Reply-To: <2482565.pAEcuMH9qj@bender>

On 03/19/2013 08:48 PM, Florian Fainelli wrote:
> On Tuesday 19 March 2013 17:43:49 Gregory CLEMENT wrote:
>>
>> Hi Masami,
>>
>> You can try this patch if you want.
>> I don't have the hardware today so I didn't test it.
>> If you (and also Florian and Ezequiel) can test it and if it fixed
>> the bug, then I will be able send a proper email for it,
> 
> I just tested your patch on RD-A370-A1 and DB-MV784MP-GP and it works fine, 
> thanks! Feel free to add my Tested-by: Florian Fainelli <florian@openwrt.org> 
> to your next submission.
> 
> Thanks!
> 
Thanks for having tested it, but with this patch there is still an issue when
we try to release the network interface. In this case the the interrupt line
is not properly freed.
Unfortunately the state of the percpu_irq API prevents the driver to use it.

Indeed the interrupts have to be freed when the .stop() function is
called. As the free_percpu_irq() function don't disable the interrupt
line, we have to do it on each CPU before calling this. The function
disable_percpu_irq() only disable the percpu on the current CPU and
there is no function which allows to disable a percpu irq on a given
CPU. Waiting for the extension of the percpu_irq API, this fix allows
to use again the mvneta driver.

I have just wrote and tested a new patch to fix this issue by just go back
on the old way we managed the irq for the mvenat as global irq and not
as local ones.

I am going to send the fix on the LAKML in a few minutes.

Thanks,

Gregory

WARNING: multiple messages have this Message-ID (diff)
From: Gregory CLEMENT <gregory.clement@free-electrons.com>
To: Florian Fainelli <florian@openwrt.org>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>,
	Ezequiel Garcia <ezequiel.garcia@free-electrons.com>,
	linux-arm-kernel@lists.infradead.org,
	thomas.petazzoni@free-electrons.com,
	Jason Cooper <jason@lakedaemon.net>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	"yrl.pp-manager.tt@hitachi.com" <yrl.pp-manager.tt@hitachi.com>
Subject: Re: [BUG][mvebu] mvneta: cannot request irq 25 on openblocks-ax3
Date: Wed, 20 Mar 2013 16:09:03 +0100	[thread overview]
Message-ID: <5149D10F.40605@free-electrons.com> (raw)
In-Reply-To: <2482565.pAEcuMH9qj@bender>

On 03/19/2013 08:48 PM, Florian Fainelli wrote:
> On Tuesday 19 March 2013 17:43:49 Gregory CLEMENT wrote:
>>
>> Hi Masami,
>>
>> You can try this patch if you want.
>> I don't have the hardware today so I didn't test it.
>> If you (and also Florian and Ezequiel) can test it and if it fixed
>> the bug, then I will be able send a proper email for it,
> 
> I just tested your patch on RD-A370-A1 and DB-MV784MP-GP and it works fine, 
> thanks! Feel free to add my Tested-by: Florian Fainelli <florian@openwrt.org> 
> to your next submission.
> 
> Thanks!
> 
Thanks for having tested it, but with this patch there is still an issue when
we try to release the network interface. In this case the the interrupt line
is not properly freed.
Unfortunately the state of the percpu_irq API prevents the driver to use it.

Indeed the interrupts have to be freed when the .stop() function is
called. As the free_percpu_irq() function don't disable the interrupt
line, we have to do it on each CPU before calling this. The function
disable_percpu_irq() only disable the percpu on the current CPU and
there is no function which allows to disable a percpu irq on a given
CPU. Waiting for the extension of the percpu_irq API, this fix allows
to use again the mvneta driver.

I have just wrote and tested a new patch to fix this issue by just go back
on the old way we managed the irq for the mvenat as global irq and not
as local ones.

I am going to send the fix on the LAKML in a few minutes.

Thanks,

Gregory

  reply	other threads:[~2013-03-20 15:09 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-19 13:12 [BUG][mvebu] mvneta: cannot request irq 25 on openblocks-ax3 Masami Hiramatsu
2013-03-19 13:12 ` Masami Hiramatsu
2013-03-19 13:33 ` Jason Cooper
2013-03-19 13:33   ` Jason Cooper
2013-03-19 14:19   ` Masami Hiramatsu
2013-03-19 14:19     ` Masami Hiramatsu
2013-03-19 14:33     ` Jason Cooper
2013-03-19 14:33       ` Jason Cooper
2013-03-19 13:39 ` Ezequiel Garcia
2013-03-19 13:39   ` Ezequiel Garcia
2013-03-19 14:19   ` Masami Hiramatsu
2013-03-19 14:19     ` Masami Hiramatsu
2013-03-19 16:43     ` Gregory CLEMENT
2013-03-19 16:43       ` Gregory CLEMENT
2013-03-19 19:48       ` Florian Fainelli
2013-03-19 19:48         ` Florian Fainelli
2013-03-20 15:09         ` Gregory CLEMENT [this message]
2013-03-20 15:09           ` Gregory CLEMENT
2013-03-21  1:56       ` Masami Hiramatsu
2013-03-21  1:56         ` Masami Hiramatsu
     [not found] <CABx3TkU7e9ZUDYhegUBD+XbG03+Q+dxF8jzeUe4Cao9Hg_TpBw@mail.gmail.com>
2013-03-20  2:11 ` Ryan Press

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=5149D10F.40605@free-electrons.com \
    --to=gregory.clement@free-electrons.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.