Mattai and Jiri, can you try the patch below to see if it fixes the USB suspend problem you are seeing with 2.6.17-mm1? David, we really should not be caring about what the children of a USB device is doing here, as who knows what type of "device" might hang off of a struct usb_device. This patch is just a band-aid around this area, until Alan's patches fix up everything "properly" :) thanks, greg k-h ----------------------------- Subject: USB: get USB suspend to work again Yeah, it's a hack, but it is only temporary until Alan's patches reworking this area make it in. We really should not care what devices below us are doing, especially when we do not really know what type of devices they are. This patch relies on the fact that the endpoint devices do not have a driver assigned to us. Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de> --- drivers/usb/core/usb.c | 2 ++ 1 file changed, 2 insertions(+) --- gregkh-2.6.orig/drivers/usb/core/usb.c +++ gregkh-2.6/drivers/usb/core/usb.c @@ -991,6 +991,8 @@ void usb_buffer_unmap_sg (struct usb_dev static int verify_suspended(struct device *dev, void *unused) { + if (dev->driver == NULL) + return 0; return (dev->power.power_state.event == PM_EVENT_ON) ? -EBUSY : 0; }