Marek Roszko
8bc661bfc0
tty/serial: at91: disable uart timer at start of shutdown
...
The uart timer will schedule a tasklet when it fires. It is possible that it
can fire inside _shutdown before it is killed in the dma and pdc cleanup
routines. This causes a tasklet that exists after the port is shutdown, so when
the kernel finally executes it, it panics as the tty port is NULL.
This is a somewhat rare condition but its possible if a program keeps on
opening/closing the port. It has been observed in particular with systemd
boot messages that were causing a kernel panic because of this behavior.
Moving the timer deletion to the beginning of the function stops a tasklet from
being scheduled unexpectedly.
Signed-off-by: Marek Roszko <mark.roszko@gmail.com >
Cc: stable <stable@vger.kernel.org > # v3.12
[nicolas.ferre@atmel.com: modify commit message, call setup_timer() in any case]
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-01-13 15:55:59 -08:00
..
2014-01-07 17:14:24 -08:00
2014-01-07 17:05:21 -08:00
2013-03-18 16:17:20 -07:00
2013-01-15 22:30:15 -08:00
2013-05-10 07:22:35 -07:00
2013-09-06 13:26:27 -07:00
2013-09-06 13:26:27 -07:00
2013-12-08 17:09:07 -08:00
2013-12-17 09:36:23 -08:00
2013-08-27 16:17:33 -07:00
2011-01-13 12:10:18 -08:00
2013-08-30 14:11:27 -07:00
2013-09-26 14:29:58 -07:00
2014-01-13 15:55:59 -08:00
2013-08-27 16:17:34 -07:00
2013-09-26 14:29:58 -07:00
2011-12-09 19:05:33 -08:00
2013-10-16 13:08:16 -07:00
2014-01-07 17:06:18 -08:00
2013-03-18 16:26:33 -07:00
2013-03-18 16:26:33 -07:00
2013-01-15 22:30:15 -08:00
2011-01-13 12:10:18 -08:00
2013-08-27 16:17:34 -07:00
2013-07-26 16:01:20 -07:00
2013-08-27 16:24:33 -07:00
2011-01-13 12:10:18 -08:00
2013-09-26 14:29:58 -07:00
2012-11-01 08:50:01 -07:00
2013-12-08 17:09:07 -08:00
2013-01-15 22:30:15 -08:00
2013-08-12 11:35:32 -07:00
2013-10-16 13:08:16 -07:00
2011-01-13 12:10:18 -08:00
2014-01-07 17:06:18 -08:00
2014-01-07 17:05:21 -08:00
2013-09-04 12:26:36 +02:00
2013-08-12 11:37:48 -07:00
2013-08-27 16:17:34 -07:00
2012-02-08 15:04:32 -08:00
2013-08-27 16:17:34 -07:00
2012-03-08 11:47:02 -08:00
2013-12-19 12:34:30 -08:00
2013-10-16 13:08:16 -07:00
2013-07-31 17:56:15 -07:00
2013-08-27 16:17:34 -07:00
2013-10-29 16:34:11 -07:00
2013-10-16 13:16:19 -07:00
2013-09-26 14:29:58 -07:00
2013-10-29 16:26:54 -07:00
2011-08-26 11:01:15 -07:00
2013-07-31 17:56:15 -07:00
2013-08-27 16:22:59 -07:00
2013-07-26 16:13:29 -07:00
2013-03-18 16:19:44 -07:00
2013-01-15 22:30:15 -08:00
2013-12-08 17:14:58 -08:00
2013-08-27 16:17:34 -07:00
2013-08-27 16:17:35 -07:00
2014-01-07 17:05:21 -08:00
2013-10-31 09:03:20 -07:00
2013-12-08 17:09:07 -08:00
2013-11-25 08:54:25 -08:00
2011-12-16 11:10:01 +11:00
2013-08-27 16:17:35 -07:00
2013-08-12 11:10:16 -07:00
2013-12-08 17:09:07 -08:00
2013-10-16 13:16:18 -07:00
2013-09-26 15:41:38 -07:00
2013-09-26 14:29:59 -07:00
2013-01-15 22:30:15 -08:00
2013-09-26 15:44:45 -07:00
2013-12-08 16:44:21 -08:00
2013-01-15 22:30:15 -08:00
2013-09-26 15:41:38 -07:00
2013-10-07 00:13:58 -07:00
2013-10-25 11:16:19 +05:30
2013-03-25 14:06:45 -07:00
2014-01-07 17:09:04 -08:00
2013-10-29 16:26:54 -07:00
2013-01-15 22:30:15 -08:00
2013-08-27 16:24:33 -07:00
2012-02-10 10:44:35 -08:00
2013-06-03 10:21:33 -07:00
2013-10-16 13:08:16 -07:00
2011-01-13 12:10:18 -08:00
2013-10-16 13:08:16 -07:00
2013-10-16 13:08:16 -07:00
2011-01-13 12:10:18 -08:00
2013-09-03 14:50:40 -04:00
2013-08-12 11:35:31 -07:00
2011-01-13 12:10:18 -08:00
2013-02-13 08:38:45 -08:00
2013-11-12 16:52:17 +09:00
2013-07-31 17:56:15 -07:00
2013-10-16 13:22:16 -07:00
2013-12-17 16:02:25 -08:00
2013-01-15 22:30:15 -08:00
2011-01-13 12:10:18 -08:00