linux-mips
[Top] [All Lists]

Re: Problem registering interrupt

To: linux-mips@linux-mips.org
Subject: Re: Problem registering interrupt
From: Sébastien Taylor <sebastient@otii.com>
Date: Thu, 6 Jan 2005 15:19:44 -0700
In-reply-to: <20041222104457.GR2460@lug-owl.de>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <41C947CC.20709@innova-card.com> <20041222101906.27137.qmail@web25109.mail.ukl.yahoo.com> <20041222104457.GR2460@lug-owl.de>
Sender: linux-mips-bounce@linux-mips.org
So the crash is happening because the handler pointer is null in the irq_desc for interrupt 49. Is there something that I was supposed to do to setup that handler before registering my interrupt? This was working fine under 2.4, is it a change in 2.6 or just in the alchemy port specifically?

Thanks for the help and happy new years,
Sébastien


Le 04-12-22, à 03:44, Jan-Benedict Glaw a écrit :

On Wed, 2004-12-22 11:19:06 +0100, moreau francis <francis_moreau2000@yahoo.fr> wrote in message <20041222101906.27137.qmail@web25109.mail.ukl.yahoo.com>:

CPU 0 Unable to handle kernel paging request at
virtual address 00000004, epc =4

Well it suggests me that your driver is trying to
access a really nasty pointer: 0x00000004...
How did you get this address ? From user space ?

Accesses to nearly NULL are normally structure accesses where a pointer
to a given struct was supplied as a NULL pointer.

So an access to 0x00000004 is most probably an access to the second
element of a struct, given/expected that all fields are usually 4-byte
aligned.

From looking at ./kernel/irq/manage.c:setup_irq(), I guess that you
supply NULL as the "struct irqaction *", which is the 2nd argument of
setup_irq(). It's 2nd structure element is "flags" then... This is the
first thing accessed by the "new" pointer in setup_irq().

MfG, JBG

--
Jan-Benedict Glaw jbglaw@lug-owl.de . +49-172-7608481 _ O _ "Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg _ _ O fuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! O O O ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));


<Prev in Thread] Current Thread [Next in Thread>
  • Re: Problem registering interrupt, Sébastien Taylor <=