[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200908031504.20506.oliver@neukum.org>
Date: Mon, 3 Aug 2009 15:04:19 +0200
From: Oliver Neukum <oliver@...kum.org>
To: Alex Riesen <raa.lkml@...il.com>
Cc: Alan Stern <stern@...land.harvard.edu>, linux-usb@...r.kernel.org,
Oliver Neukum <oliver@...kum.name>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
"Greg Kroah-Hartman" <greg@...ah.com>,
Alan Cox <alan@...rguk.ukuu.org.uk>
Subject: Re: Oops in CDC ACM after an Openmoko phone (neo1973) changes its usb interface from ACM to Ethernet
Am Montag, 3. August 2009 11:17:05 schrieb Alex Riesen:
> 466 ep = (usb_pipein(acm->rx_endpoint) ? acm->dev->ep_in :
> acm->dev->ep_out)
> 467 [usb_pipeendpoint(acm->rx_endpoint)];
> 468 if (usb_endpoint_xfer_int(&ep->desc))
>
> So it looks like ep is NULL (usb_endpoint_xfer_int accesses
> desc.bmAttributes, which is 3 bytes off the beginning of struct
> usb_host_endpoint (desc being the first field in usb_host_endpoint).
This tells you that the device has been disconnected. The question
is not why this function fails, but why it is called even though the
device has been disconnected.
Regards
Oliver
Powered by blists - more mailing lists