usb: serial: Add a check for current autosuspend-delay expiration

Upon autosuspend-delay expiration for the device, runtime pm thread
initiates run time suspend after checking device's power.last_busy
time. There is a possibility of race condition between this check
and device interface driver updating power.last_busy time which
results in interface suspend in the middle of ongoing transfer
on that interface.

CRs-Fixed: 381765
Change-Id: I1fc4f8d9d9e83ef3ef6c564ee76294a703230fad
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
This commit is contained in:
Hemant Kumar 2012-07-23 20:02:51 -07:00 committed by Stephen Boyd
parent 20b52dcb10
commit 4d4bd00689

View file

@ -591,7 +591,7 @@ int usb_wwan_suspend(struct usb_serial *serial, pm_message_t message)
b = intfdata->in_flight;
spin_unlock_irq(&intfdata->susp_lock);
if (b)
if (b || pm_runtime_autosuspend_expiration(&serial->dev->dev))
return -EBUSY;
}