[PATCH 0/3] cdc-acm: fix incorrect runtime wakeup in acm_tty_write

From: Zhang, Yanmin
Date: Mon May 25 2015 - 22:19:57 EST


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;


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