Problems with suspend and USB storage

From: Bill Nottingham
Date: Thu May 15 2008 - 12:33:28 EST



I've been testing suspend/hibernate with various USB devices under
2.6.25.2. Test box is a Thinkpad T60 (uhci, ehci).
The results are somewhat dismal.

Using USB as a hibernate device:
- A directly connected USB stick works OK as a hibernate device
- A directly connected USB hard drive works OK as a hibernate device
- A USB stick connected via an ExpressCard reader does not - it appears
to just not be there when the hibernate code attemps to write
the data.

On resume (from either hibernate or suspend from RAM):
- Any 'in use' USB storage, whether it be as swap (a hibernate device),
or a mounted filesystem, immediately generates errors on resume. It
appears the filesystem and/or swap tasks are woken up before the
actual USB device - it enumerates the disks after the errors have
already been thrown.
- As a consequence, the USB devices shift their device names
- Using USB_PERSIST has no effect on this problem
- This appears to happen for all USB connection types (hard drive,
stick, via ExpressCard reader.)

Is there any way to get sane behavior out of suspend/resume with
USB storage?

Bill
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/