From mboxrd@z Thu Jan 1 00:00:00 1970 From: Greg KH Subject: Re: swsusp regression [Was: 2.6.17-mm1] Date: Thu, 22 Jun 2006 11:46:49 -0700 Message-ID: <20060622184649.GA6768@kroah.com> References: <20060622004648.f1912e34.akpm@osdl.org> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-pm-bounces@lists.osdl.org Errors-To: linux-pm-bounces@lists.osdl.org To: Alan Stern Cc: linux-pm@osdl.org, linux-kernel@vger.kernel.org List-Id: linux-pm@vger.kernel.org On Thu, Jun 22, 2006 at 11:51:18AM -0400, Alan Stern wrote: > On Thu, 22 Jun 2006, Andrew Morton wrote: > = > > On Wed, 21 Jun 2006 23:19:05 -0700 > > Greg KH wrote: > > = > > > > I have the same problems also with suspend to disk. BTW I can't res= ume > > > > from disk since 2.6.17-rc5-mm1, but I'll try to be more precise > > > > tomorrow, as it seems removing the usb stuff makes it do some more = steps > > > > toward resumimg (eg: with usb modules this laptop immediately reboo= ts > > > > after reading all pages, without them I can reach "resuming device.= ." > > > > stage). > > > = > > > Removing uhci-hcd causes all USB devices to be removed from the syste= m. > > > = > > > Alan, you've been working in the "generic usb" section lately, any id= eas > > > why we can't suspend that kind of device now? > = > See below... > = > > My laptop has the same problem. > = > > Shrinking memory... done (0 pages freed) > > hci_usb 3-1:1.1: no suspend for driver hci_usb? > > hci_usb 3-1:1.0: no suspend for driver hci_usb? > > usbdev3.2_ep00: not suspended > > usb_generic_suspend(): verify_suspended+0x0/0x3c() returns -16 > > suspend_device(): usb_generic_suspend+0x0/0x134() returns -16 > > Could not suspend device 3-1: error -16 > > hci_usb 3-1:1.0: no resume for driver hci_usb? > > hci_usb 3-1:1.1: no resume for driver hci_usb? > > Some devices failed to suspend > > Restarting tasks... done > > = > > = > > What's a usbdev3.2_ep00? > = > Evidently the regression was caused by Greg's patch making endpoints into = > real struct devices. usbdev3.2_ep00 is the device corresponding to = > endpoint 0 on device 2 of USB bus 3. > = > Is it really true that this patch has been sitting in -mm for several > months (as stated in the cover message to Linus for the new batch of > changes for 2.6.17 sent in yesterday)? Ugh, no, you are right, the endpoint change was not in for that long, sorry. I thought it did make at least one -mm though. > There are several possible ways to fix this. One is to add suspend and = > resume routines to the endpoint-device driver. Another is to change the = > code that checks for the children being suspended, to make it check only = > for child USB devices and not child endpoints. I think it needs to check for _USB_ devices, not just any old device that could possibly be attached to the main USB device (as this one is.) What's to stop any other struct device to bind here and cause the same problem? thanks, greg k-h