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
..
2013-01-15 22:30:15 -08:00
2013-02-06 11:10:17 -08:00
2013-03-18 16:24:29 -07:00
2013-12-08 16:56:05 -08:00
2013-12-24 10:10:47 -08:00
2013-10-16 13:08:16 -07:00
2013-07-24 15:12:53 -07:00
2014-01-07 17:05:21 -08:00
2013-11-25 08:56:49 -08:00
2013-12-16 16:55:43 -08:00