Subject: Re: Problem registering interrupt

From: moreau francis <[email-masked]>
Date: Wed, 22 Dec 2004 11:19:06 +0100 (CET)

> 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 ?

   Francis

		
Découvrez le nouveau Yahoo! Mail : 250 Mo d'espace de stockage pour vos mails ! 
Créez votre Yahoo! Mail sur http://fr.mail.yahoo.com/

---

From: Jan-Benedict Glaw <[email-masked]>
Date: Wed, 22 Dec 2004 11:44:57 +0100

On Wed, 2004-12-22 11:19:06 +0100, moreau francis <[email-masked]>
> 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       [email-masked]    . +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));