Messages in this thread | | | Date | Mon, 7 Sep 2009 11:08:25 -0400 (EDT) | From | Alan Stern <> | Subject | Re: WARNINGs in usb-serial.c |
| |
On Mon, 7 Sep 2009, Miklos Szeredi wrote:
> Here's a reproducible Oops on that kernel when trying to connect with > wvdial. This is a regression compared to -linus, where wvdial works > (most of the time anyway). > > I can bisect it if it's not immediately obvious what is happening...
I don't think bisecting will help (or is even possible).
> BUG: unable to handle kernel NULL pointer dereference at 0000000000000018 > IP: [<ffffffffa020709c>] serial_chars_in_buffer+0x47/0x5f [usbserial]
It's difficult to say without an assembly listing, but I gather that serial_chars_in_buffer() is seeing port->serial == NULL. Can you verify this?
This is unexpected, because port->serial is initialized in usb_serial_probe() and is not set to NULL until destroy_serial(), after which port should not be used at all. Can you add a
#define DEBUG
line at the start of usb-serial.c (before the #include lines) so that we can tell if destroy_serial() is getting called too early? When you do, post the dmesg log showing everything from the time you start running your test.
Alan Stern
| |