Re: [crash] af9005_usb_module_init(): BUG: unable to handle kernelpaging request at ff100000
From: Luca Olivetti
Date: Wed Feb 04 2009 - 09:52:44 EST
En/na Daniel Walker ha escrit:
On Tue, 2009-02-03 at 21:41 +0100, Luca Olivetti wrote:
No, I don't have 2.6.28, but I guess that maybe once usb_register is
called the dvb-usb subsystem asynchronously (is that an smp system?)
starts polling the remote before the rc_decode function pointer has been
initialized.
Could you try to initialize it to NULL before calling usb_register?
What happens to the decode function when you have,
CONFIG_DVB_USB_AF9005=y
CONFIG_DVB_USB_AF9005_REMOTE=n
It seems that the decode function is defined inside,
drivers/media/dvb/dvb-usb/af9005-remote.c
but that doesn't get compiled in the case above. It looks like you end
up with af9005_rc_decode being a function local weak symbol
(uninitialized) which then gets assigned to rc_decode .. I think the
crash actually happens on rc_keys_size which get assigned another
uninitialized local, and it gets de-referenced .
Doesn't symbol_request return a NULL in such a case?
At the time I didn't try the above configuration
(CONFIG_DVB_USB_AF9005_REMOTE=n), but removed the compiled
dvb-usb-af9005-remote.ko, and all was well (i.e. the symbol_request
returned NULL and the remote handling was disabled).
Here's a patch I compile tested, and I think it would fix the issue.
But it'd break the alternative rc decoding module (not integrated in the
kernel because it uses lirc):
http://ventoso.org/luca/af9005/README.lirc
Not really an issue for me, since I'm using a lirc-serial homebrew
device, (besides, my af9005 device is broken, though the remote part is
still working, so in a pinch I could use it as an usb remote receiver).
@Ingo, silly question, but do you have an af9005 based device where this
is crashing?
Bye
--
Luca
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/