USB: serial: comments on suspend failure
authorMing Lei <ming.lei@canonical.com>
Fri, 15 Mar 2013 04:08:54 +0000 (12:08 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 25 Mar 2013 17:55:46 +0000 (10:55 -0700)
If suspend callback fails in system sleep context, usb core will
ignore the failure and let system sleep go ahead further, so
this patch comments on the case and requires that serial->type->suspend()
MUST return 0 in system sleep context.

Acked-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/serial/usb-serial.c

index bbe7f2eb8160f77cfe6f5484219e2b568cbe88b4..2fc05004c1b6f253e5dc5a1dabc47f38988baeaf 100644 (file)
@@ -1137,6 +1137,11 @@ int usb_serial_suspend(struct usb_interface *intf, pm_message_t message)
 
        serial->suspending = 1;
 
+       /*
+        * serial->type->suspend() MUST return 0 in system sleep context,
+        * otherwise, the resume callback has to recover device from
+        * previous suspend failure.
+        */
        if (serial->type->suspend) {
                r = serial->type->suspend(serial, message);
                if (r < 0) {