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@xxxxxxxx>
wrote in message
<20041222101906.27137.qmail@xxxxxxxxxxxxxxxxxxxxxxxxxxx>:
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@xxxxxxxxxx . +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));