On Thu, 19 Sep 2002, Greg KH wrote:

> On Fri, Sep 20, 2002 at 02:24:54AM +0200, Fabian Sturm wrote:
> > Sorry that I asked again but is there still someone
> > tracking this bug? I really would love to get this working.
>
> As it looks like a SCSI / USB mass storage problem, I know I'm not,
> sorry.
>
> I'd recommend going and pestering the maintainer of the usb-storage
> driver :)
>
> Good luck,
>
> greg k-h


According to Fabian's ksymoops trace, the page fault occurs in the
usb_reset_device() routine, which is part of the usb core, not part of
usb-storage.

I haven't got a copy of the 2.4.20-pre7 source for drivers/usb/hub.c, but
from my reading of the disassembly output of ksymoops, it is somewhat
different from the 2.4.19 version.  In particular, it appears that in the
usb_reset_device() routine, the local variable "descriptor" refers to a
dynamically allocated buffer, rather than a stack-based local buffer as
in 2.4.19.  The page fault occurs in the line of code which in 2.4.19
reads:

        if (memcmp(&dev->descriptor, &descriptor, sizeof(descriptor))) {

I presume that in 2.4.20-pre7 it is more along the lines of

        if (memcmp(&dev->descriptor, descriptor, sizeof(*descriptor))) {

The value of the "descriptor" variable has been messed up, and trying to
dereference it causes the page fault.  Either something in
usb_reset_device() has altered the address stored in the variable or else
a compiler bug has done something equivalent.

I hope this helps you to pinpoint the source of the problem.

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

Reply via email to