Messages in this thread | | | Date | Wed, 27 May 2015 10:49:10 +0800 | From | "Zhang, Yanmin" <> | Subject | [PATCH V2 0/3] cdc-acm: fix incorrect runtime wakeup in acm_tty_write |
| |
Resend as V1 has email format issue. Sorry for bothering.
---
There is a scenario about cdc-acm utilization.Application opens n_gsm tty and cdc-acm tty. cdc-acm tty connects to xhci device. The application configures cdc-adm tty to n_gsm tty as ldisc tty.
n_gsm=>cdc-acm=>xhci driver
acm_tty_write can be called from n_gsm driver by ldisc connection, and from application when application opens cdc-acm tty directly. acm_tty_write wakes up the device by calling usb_autopm_get_interface_async, which calls pm_runtime_get. However, pm_runtime_get can't wake up the device before returning as it's an async wake up. Then, acm_tty_write might access the device when it is off.
The patchset fixes it by: 1) add a new function usb_autopm_get_interface_upgrade to deal with above 2 requirements; 2) wake up device in n_gsm driver if n_gsm drivers calls cdc-acm driver;
| |