Thilo-Alexander Ginkel
f9fd8d6232
usb: cdc-acm: Fix acm_tty_hangup() vs. acm_tty_close() race
...
[Not upstream as it was fixed differently for 3.3 with a much more
"intrusive" rework of the driver - gregkh]
There is a race condition involving acm_tty_hangup() and acm_tty_close()
where hangup() would attempt to access tty->driver_data without proper
locking and NULL checking after close() has potentially already set it
to NULL. One possibility to (sporadically) trigger this behavior is to
perform a suspend/resume cycle with a running WWAN data connection.
This patch addresses the issue by introducing a NULL check for
tty->driver_data in acm_tty_hangup() protected by open_mutex and exiting
gracefully when hangup() is invoked on a device that has already been
closed.
Signed-off-by: Thilo-Alexander Ginkel <thilo@ginkel.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de >
2012-01-12 11:29:46 -08:00
..
2011-11-17 12:58:07 -08:00
2011-09-27 09:25:51 +01:00
2011-12-22 15:00:32 -05:00
2011-10-25 13:25:22 +02:00
2012-01-12 11:29:17 -08:00
2012-01-12 11:29:20 -08:00
2011-12-16 10:05:14 -08:00
2011-12-09 14:07:12 -05:00
2011-12-20 10:25:04 -08:00
2011-11-06 19:44:47 -08:00
2011-09-28 13:41:50 -04:00
2011-11-11 22:28:33 -05:00
2011-11-07 10:13:52 -08:00
2011-11-25 21:55:07 -08:00
2011-10-31 19:31:43 -04:00
2011-11-14 23:31:35 +01:00
2011-12-19 12:26:07 +01:00
2011-11-24 01:59:38 -06:00
2011-11-06 19:44:47 -08:00
2011-12-15 14:16:47 -08:00
2011-12-15 11:25:43 -07:00
2012-01-03 09:17:16 +00:00
2011-12-02 08:25:46 -08:00
2012-01-12 11:29:33 -08:00
2011-12-12 08:31:21 -08:00
2011-11-08 18:34:16 -08:00
2011-12-18 11:46:42 +00:00
2011-11-18 22:04:12 -02:00
2011-11-07 10:13:52 -08:00
2012-01-12 11:29:24 -08:00
2011-12-30 13:42:41 -08:00
2011-12-29 17:36:15 -08:00
2011-11-29 18:39:37 -05:00
2011-11-15 22:41:50 -02:00
2011-10-31 19:32:13 -04:00
2011-11-08 22:35:48 +01:00
2011-12-23 09:57:48 +11:00
2011-12-31 11:53:58 -08:00
2011-10-31 19:31:52 -04:00
2011-10-31 19:31:53 -04:00
2011-12-20 18:53:26 +01:00
2011-11-21 20:36:05 -08:00
2011-12-30 13:45:34 -08:00
2011-12-19 11:13:52 +00:00
2012-01-12 11:29:45 -08:00
2011-10-31 19:31:54 -04:00
2011-12-12 14:41:45 -07:00
2011-12-19 17:18:43 +01:00
2011-10-31 19:31:01 -04:00
2011-10-18 14:17:40 -07:00
2011-12-18 14:10:16 -08:00
2011-11-06 19:44:47 -08:00
2011-11-10 09:02:12 +01:00
2011-12-05 13:07:28 -05:00
2011-11-07 10:13:52 -08:00
2011-12-05 17:06:37 +01:00
2011-11-02 16:07:02 -07:00
2011-11-08 14:51:46 +11:00
2011-12-06 11:38:32 +01:00
2011-12-09 07:50:29 -08:00
2011-11-28 18:58:31 +00:00
2012-01-04 07:57:22 -08:00
2011-12-14 15:40:43 +04:00
2011-12-04 10:46:58 -08:00
2011-12-15 11:02:07 +04:00
2011-10-31 19:31:57 -04:00
2011-11-11 16:16:25 +09:00
2011-12-07 22:17:39 +01:00
2011-12-09 14:07:12 -05:00
2011-12-13 16:13:15 -08:00
2011-12-06 06:00:59 +00:00
2011-11-06 20:38:49 -05:00
2012-01-12 11:29:35 -08:00
2011-10-31 19:32:10 -04:00
2012-01-12 11:29:46 -08:00
2011-10-31 19:32:19 -04:00
2012-01-12 11:29:19 -08:00
2011-10-14 02:56:02 -05:00
2011-11-24 13:04:48 +10:30
2011-11-06 19:44:47 -08:00
2011-12-27 20:35:59 +01:00
2011-12-19 09:30:35 -05:00
2011-10-31 19:32:01 -04:00
2011-10-26 15:39:02 +02:00
2011-10-26 15:39:02 +02:00