path: root/lib
diff options
authorMarek Roszko <mark.roszko@gmail.com>2014-01-10 10:33:11 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-01-13 15:55:59 -0800
commit8bc661bfc0c2d221e209f4205bdaaf574d50100c (patch)
tree2fbd2b8a47104ebc014476530806b1afbbe2f2f5 /lib
parent3685f19e07802ec4207b52465c408f185b66490e (diff)
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>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions