Re: Problems with suspend and USB storage

From: Rafael J. Wysocki
Date: Thu May 15 2008 - 15:40:38 EST


On Thursday, 15 of May 2008, Bill Nottingham wrote:
>
> 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?

Well, the problem is that USB storage devices are disconnected during suspend
and hibernation and connected once again during resume. Then, however, we
are not able to tell whether the device in the slot is the same that was in
there before the system was put into the sleep state.

I'm not sure if there's any workaround available in the current mainline.

Thanks,
Rafael
--
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/