From: Marek Roszko Date: Fri, 10 Jan 2014 09:33:11 +0000 (+0100) Subject: tty/serial: at91: disable uart timer at start of shutdown X-Git-Tag: v3.14-rc1~149^2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8bc661bfc0c2d221e209f4205bdaaf574d50100c;p=pandora-kernel.git 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 Cc: stable # v3.12 [nicolas.ferre@atmel.com: modify commit message, call setup_timer() in any case] Signed-off-by: Nicolas Ferre Signed-off-by: Greg Kroah-Hartman --- Reading git-diff-tree failed