On Mon, 6 Oct 2003, Robin Munn wrote:
[1.] PROBLEM: Kernel oops registering usbnet
[2.] Full description:
I have a Sharp Zaurus 5500 PDA, which I'm using usbnet to sync with. The cradle's USB cable is plugged into my USB ports, and I place the Zaurus in the cradle to sync with my PC. Last time I did so, I got this error message:
Unable to handle kernel NULL pointer dereference at virtual address 000000c0
It was followed by a kernel oops, which I ran through ksymoops and
reproduced below. Note that I had already placed the Zaurus in its
cradle several times, and removed it several times, before triggering
this message. Yes, it's an intermittent bug -- sorry. :-(
Intermittent bugs exist to keep developers on their toes ... ;-)
I'm curious why "ksymoops" was necessary ... and why the kernel didn't print the symbolic name of of the EIP address; I'm used to seeing it do that.
Alan's explanation seems fair to me, and suggests a patch that should be added to make this oops go away. Leaving the issue of what exactly is making this happen...
- Dave
The cause of the oops is in usb_ifnum_to_if(). The subroutine doesn't check whether dev->actconfig is NULL before dereferencing it. It would be easy enough to add such a test. But that doesn't answer the underlying question: How did the configuration get reset while an interface was being probed? It sounds like it might be a "bounce" effect -- maybe placing the Zaurus in its cradle caused some connections to be made and dropped intermittently, and that triggered some sort of race. However, the dev->serialize semaphore is supposed to prevent that sort of thing from happening. So I don't see how this could have happened.
Alan Stern
------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
