2008-07-02 17:43:26

by Philipp Zabel

[permalink] [raw]
Subject: [PATCH] mfd: fix a bug in the asic3 irq demux code

Wrong irq numbers were given to desc->handle_irq, which
on some devices caused endless loops (asic3_irq_demux
calling itself, basically).

Signed-off-by: Philipp Zabel <[email protected]>
---
drivers/mfd/asic3.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/mfd/asic3.c b/drivers/mfd/asic3.c
index 8e41130..59ec9c6 100644
--- a/drivers/mfd/asic3.c
+++ b/drivers/mfd/asic3.c
@@ -308,7 +308,7 @@ static void asic3_irq_demux(unsigned int irq, struct irq_desc *desc)
for (i = ASIC3_NUM_GPIOS; i < ASIC3_NR_IRQS; i++) {
/* They start at bit 4 and go up */
if (status & (1 << (i - ASIC3_NUM_GPIOS + 4))) {
- desc = irq_desc + + i;
+ desc = irq_desc + asic->irq_base + i;
desc->handle_irq(asic->irq_base + i,
desc);
}
--
1.5.6


2008-07-02 17:53:21

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] mfd: fix a bug in the asic3 irq demux code

On Wed, 02 Jul 2008 19:42:53 +0200 Philipp Zabel <[email protected]> wrote:

> Wrong irq numbers were given to desc->handle_irq, which
> on some devices caused endless loops (asic3_irq_demux
> calling itself, basically).
>
> Signed-off-by: Philipp Zabel <[email protected]>
> ---
> drivers/mfd/asic3.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/mfd/asic3.c b/drivers/mfd/asic3.c
> index 8e41130..59ec9c6 100644
> --- a/drivers/mfd/asic3.c
> +++ b/drivers/mfd/asic3.c
> @@ -308,7 +308,7 @@ static void asic3_irq_demux(unsigned int irq, struct irq_desc *desc)
> for (i = ASIC3_NUM_GPIOS; i < ASIC3_NR_IRQS; i++) {
> /* They start at bit 4 and go up */
> if (status & (1 << (i - ASIC3_NUM_GPIOS + 4))) {
> - desc = irq_desc + + i;
> + desc = irq_desc + asic->irq_base + i;
> desc->handle_irq(asic->irq_base + i,
> desc);
> }

hm, I seem to have a pile of mfd patches. I'll look to offload those
on Samuel.

Samuel, will you be setting up an MFD git tree for linux-next? (You
should, please).

2008-07-02 18:22:33

by Samuel Ortiz

[permalink] [raw]
Subject: Re: [PATCH] mfd: fix a bug in the asic3 irq demux code

Hi Andrew,

On Wed, Jul 02, 2008 at 10:53:03AM -0700, Andrew Morton wrote:
> On Wed, 02 Jul 2008 19:42:53 +0200 Philipp Zabel <[email protected]> wrote:
>
> > Wrong irq numbers were given to desc->handle_irq, which
> > on some devices caused endless loops (asic3_irq_demux
> > calling itself, basically).
> >
> > Signed-off-by: Philipp Zabel <[email protected]>
> > ---
> > drivers/mfd/asic3.c | 2 +-
> > 1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/drivers/mfd/asic3.c b/drivers/mfd/asic3.c
> > index 8e41130..59ec9c6 100644
> > --- a/drivers/mfd/asic3.c
> > +++ b/drivers/mfd/asic3.c
> > @@ -308,7 +308,7 @@ static void asic3_irq_demux(unsigned int irq, struct irq_desc *desc)
> > for (i = ASIC3_NUM_GPIOS; i < ASIC3_NR_IRQS; i++) {
> > /* They start at bit 4 and go up */
> > if (status & (1 << (i - ASIC3_NUM_GPIOS + 4))) {
> > - desc = irq_desc + + i;
> > + desc = irq_desc + asic->irq_base + i;
> > desc->handle_irq(asic->irq_base + i,
> > desc);
> > }
>
> hm, I seem to have a pile of mfd patches. I'll look to offload those
> on Samuel.
>
> Samuel, will you be setting up an MFD git tree for linux-next? (You
> should, please).
I have set up an mfd tree here: http://git.o-hand.com/?r=linux-mfd
with a for-next branch. I havent asked Stephen to pull from it yet,
and I havent Cc'ed you on the mfd patches that are sitting there as
I was mostly setting things up. I will clean things up and re-apply
them so that you get a notification for all the mfd patches that are
already on -mm.

I also requested for an account on kernel.org, but I'm still waiting
for an answer.

Cheers,
Samuel.

2008-07-02 18:57:40

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] mfd: fix a bug in the asic3 irq demux code

On Wed, 2 Jul 2008 20:22:20 +0200
Samuel Ortiz <[email protected]> wrote:

> Hi Andrew,
>
> On Wed, Jul 02, 2008 at 10:53:03AM -0700, Andrew Morton wrote:
> > On Wed, 02 Jul 2008 19:42:53 +0200 Philipp Zabel <[email protected]> wrote:
> >
> > > Wrong irq numbers were given to desc->handle_irq, which
> > > on some devices caused endless loops (asic3_irq_demux
> > > calling itself, basically).
> > >
> > > Signed-off-by: Philipp Zabel <[email protected]>
> > > ---
> > > drivers/mfd/asic3.c | 2 +-
> > > 1 files changed, 1 insertions(+), 1 deletions(-)
> > >
> > > diff --git a/drivers/mfd/asic3.c b/drivers/mfd/asic3.c
> > > index 8e41130..59ec9c6 100644
> > > --- a/drivers/mfd/asic3.c
> > > +++ b/drivers/mfd/asic3.c
> > > @@ -308,7 +308,7 @@ static void asic3_irq_demux(unsigned int irq, struct irq_desc *desc)
> > > for (i = ASIC3_NUM_GPIOS; i < ASIC3_NR_IRQS; i++) {
> > > /* They start at bit 4 and go up */
> > > if (status & (1 << (i - ASIC3_NUM_GPIOS + 4))) {
> > > - desc = irq_desc + + i;
> > > + desc = irq_desc + asic->irq_base + i;
> > > desc->handle_irq(asic->irq_base + i,
> > > desc);
> > > }
> >
> > hm, I seem to have a pile of mfd patches. I'll look to offload those
> > on Samuel.
> >
> > Samuel, will you be setting up an MFD git tree for linux-next? (You
> > should, please).
> I have set up an mfd tree here: http://git.o-hand.com/?r=linux-mfd
> with a for-next branch.

OK, thanks. Linus gets upset over git-over-http for some reason, so
I'd suggest that you move to kernel.org when that is set up.

Plus: I pull from lots of different git servers and it's quite common
that at least one of them is dead. It was git://http://www.linux-m32r.org
yesterday.

> I havent asked Stephen to pull from it yet,
> and I havent Cc'ed you on the mfd patches that are sitting there as
> I was mostly setting things up. I will clean things up and re-apply
> them so that you get a notification for all the mfd patches that are
> already on -mm.
>
> I also requested for an account on kernel.org, but I'm still waiting
> for an answer.

Cool.

I assume that [email protected] is now the preferred address? Will
[email protected] continue to work?

2008-07-02 18:59:23

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] mfd: fix a bug in the asic3 irq demux code

On Wed, 2 Jul 2008 20:22:20 +0200
Samuel Ortiz <[email protected]> wrote:

> I have set up an mfd tree here: http://git.o-hand.com/?r=linux-mfd
> with a for-next branch

Hang on, that's not a git URL. What's the preferred git:// URL?

Thanks.

2008-07-02 21:21:59

by Samuel Ortiz

[permalink] [raw]
Subject: Re: [PATCH] mfd: fix a bug in the asic3 irq demux code

On Wed, Jul 02, 2008 at 11:57:26AM -0700, Andrew Morton wrote:
> On Wed, 2 Jul 2008 20:22:20 +0200
> Samuel Ortiz <[email protected]> wrote:
>
> > Hi Andrew,
> >
> > On Wed, Jul 02, 2008 at 10:53:03AM -0700, Andrew Morton wrote:
> > > On Wed, 02 Jul 2008 19:42:53 +0200 Philipp Zabel <[email protected]> wrote:
> > >
> > > > Wrong irq numbers were given to desc->handle_irq, which
> > > > on some devices caused endless loops (asic3_irq_demux
> > > > calling itself, basically).
> > > >
> > > > Signed-off-by: Philipp Zabel <[email protected]>
> > > > ---
> > > > drivers/mfd/asic3.c | 2 +-
> > > > 1 files changed, 1 insertions(+), 1 deletions(-)
> > > >
> > > > diff --git a/drivers/mfd/asic3.c b/drivers/mfd/asic3.c
> > > > index 8e41130..59ec9c6 100644
> > > > --- a/drivers/mfd/asic3.c
> > > > +++ b/drivers/mfd/asic3.c
> > > > @@ -308,7 +308,7 @@ static void asic3_irq_demux(unsigned int irq, struct irq_desc *desc)
> > > > for (i = ASIC3_NUM_GPIOS; i < ASIC3_NR_IRQS; i++) {
> > > > /* They start at bit 4 and go up */
> > > > if (status & (1 << (i - ASIC3_NUM_GPIOS + 4))) {
> > > > - desc = irq_desc + + i;
> > > > + desc = irq_desc + asic->irq_base + i;
> > > > desc->handle_irq(asic->irq_base + i,
> > > > desc);
> > > > }
> > >
> > > hm, I seem to have a pile of mfd patches. I'll look to offload those
> > > on Samuel.
> > >
> > > Samuel, will you be setting up an MFD git tree for linux-next? (You
> > > should, please).
> > I have set up an mfd tree here: http://git.o-hand.com/?r=linux-mfd
> > with a for-next branch.
>
> OK, thanks. Linus gets upset over git-over-http for some reason, so
> I'd suggest that you move to kernel.org when that is set up.
Oh, this is only the gitweb interface, the git address is:
git://git.o-hand.com/linux-mfd.git

But please dont pull from it right now. I'll let you (and Stephen) know
whenever it is ready for pulling.

> Plus: I pull from lots of different git servers and it's quite common
> that at least one of them is dead. It was git://http://www.linux-m32r.org
> yesterday.
If I get an account on kernel.org, I'll definitely move over there.


> > I havent asked Stephen to pull from it yet,
> > and I havent Cc'ed you on the mfd patches that are sitting there as
> > I was mostly setting things up. I will clean things up and re-apply
> > them so that you get a notification for all the mfd patches that are
> > already on -mm.
> >
> > I also requested for an account on kernel.org, but I'm still waiting
> > for an answer.
>
> Cool.
>
> I assume that [email protected] is now the preferred address? Will
> [email protected] continue to work?
Both will work. I'll do the MFD work from my @openedhand.com address and
my IrDA one from @sortiz.org

Cheers,
Samuel.

2008-07-02 21:22:28

by Samuel Ortiz

[permalink] [raw]
Subject: Re: [PATCH] mfd: fix a bug in the asic3 irq demux code

On Wed, Jul 02, 2008 at 11:59:03AM -0700, Andrew Morton wrote:
> On Wed, 2 Jul 2008 20:22:20 +0200
> Samuel Ortiz <[email protected]> wrote:
>
> > I have set up an mfd tree here: http://git.o-hand.com/?r=linux-mfd
> > with a for-next branch
>
> Hang on, that's not a git URL. What's the preferred git:// URL?
git://git.o-hand.com/linux-mfd.git should do it.

Cheers,
Samuel.

2008-07-03 12:58:13

by Samuel Ortiz

[permalink] [raw]
Subject: Re: [PATCH] mfd: fix a bug in the asic3 irq demux code

Hi Philipp,

On Wed, Jul 02, 2008 at 07:42:53PM +0200, Philipp Zabel wrote:
> Wrong irq numbers were given to desc->handle_irq, which
> on some devices caused endless loops (asic3_irq_demux
> calling itself, basically).
Thanks, applied to my mfd tree.

Cheers,
Samuel.


> Signed-off-by: Philipp Zabel <[email protected]>
> ---
> drivers/mfd/asic3.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/mfd/asic3.c b/drivers/mfd/asic3.c
> index 8e41130..59ec9c6 100644
> --- a/drivers/mfd/asic3.c
> +++ b/drivers/mfd/asic3.c
> @@ -308,7 +308,7 @@ static void asic3_irq_demux(unsigned int irq, struct irq_desc *desc)
> for (i = ASIC3_NUM_GPIOS; i < ASIC3_NR_IRQS; i++) {
> /* They start at bit 4 and go up */
> if (status & (1 << (i - ASIC3_NUM_GPIOS + 4))) {
> - desc = irq_desc + + i;
> + desc = irq_desc + asic->irq_base + i;
> desc->handle_irq(asic->irq_base + i,
> desc);
> }
> --
> 1.5.6
>
>