[patch]fix sierra's close in suspended case

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



sierra_close() must resume the device before it notifies it of a closure

Signed-off-by: Oliver Neukum <oliver@xxxxxxxxxx>

Hi,

this is needed only in mainline.

Elina, strictly speaking with this patch your earlier patch is correct,
but it still makes no sense to go through setting up the timers and
all that, so please reverse the order of calls in your patch.

	Regards
		Oliver

--

commit 94b94847e5b260ef28b807dc57604b2e32cdd2c2
Author: Oliver Neukum <oliver@xxxxxxxxxx>
Date:   Wed Oct 14 10:36:12 2009 +0200

    usb:usbserial:sierra:fix close() in suspended case
    
    close() must resume the device before it notifies
    it of a closure

diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c
index 4588398..82646e7 100644
--- a/drivers/usb/serial/sierra.c
+++ b/drivers/usb/serial/sierra.c
@@ -773,8 +773,11 @@ static void sierra_close(struct usb_serial_port *port)
 
 	if (serial->dev) {
 		mutex_lock(&serial->disc_mutex);
-		if (!serial->disconnected)
+		if (!serial->disconnected) {
+			serial->interface->needs_remote_wakeup = 0;
+			usb_autopm_get_interface(serial->interface);
 			sierra_send_setup(port);
+		}
 		mutex_unlock(&serial->disc_mutex);
 		spin_lock_irq(&intfdata->susp_lock);
 		portdata->opened = 0;
@@ -788,8 +791,6 @@ static void sierra_close(struct usb_serial_port *port)
 			sierra_release_urb(portdata->in_urbs[i]);
 			portdata->in_urbs[i] = NULL;
 		}
-		usb_autopm_get_interface(serial->interface);
-		serial->interface->needs_remote_wakeup = 0;
 	}
 }
 

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux