opticon: Fix resume logic
authorAlan Cox <alan@linux.intel.com>
Tue, 6 Oct 2009 15:06:57 +0000 (16:06 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 11 Dec 2009 23:18:04 +0000 (15:18 -0800)
Opticon now takes the right mutex to check the port status but the status
check is done wrongly for the modern serial code, so fix it.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Oliver Neukum <oliver@neukum.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/serial/opticon.c

index c03fdc0242dd7e48d8237c49c5b0acfb766183cd..4cdb975caa89a96a897451ba57203e97968a7bdc 100644 (file)
@@ -502,7 +502,8 @@ static int opticon_resume(struct usb_interface *intf)
        int result;
 
        mutex_lock(&port->port.mutex);
-       if (port->port.count)
+       /* This is protected by the port mutex against close/open */
+       if (test_bit(ASYNCB_INITIALIZED, &port->port.flags))
                result = usb_submit_urb(priv->bulk_read_urb, GFP_NOIO);
        else
                result = 0;