Sebastian Andrzej Siewior
ffcf167d34
serial: core: mark port as initialized after successful IRQ change
...
commit 44117a1d17 upstream.
setserial changes the IRQ via uart_set_info(). It invokes
uart_shutdown() which free the current used IRQ and clear
TTY_PORT_INITIALIZED. It will then update the IRQ number and invoke
uart_startup() before returning to the caller leaving
TTY_PORT_INITIALIZED cleared.
The next open will crash with
| list_add double add: new=ffffffff839fcc98, prev=ffffffff839fcc98, next=ffffffff839fcc98.
since the close from the IOCTL won't free the IRQ (and clean the list)
due to the TTY_PORT_INITIALIZED check in uart_shutdown().
There is same pattern in uart_do_autoconfig() and I *think* it also
needs to set TTY_PORT_INITIALIZED there.
Is there a reason why uart_startup() does not set the flag by itself
after the IRQ has been acquired (since it is cleared in uart_shutdown)?
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2018-02-13 12:35:56 +01:00
..
2018-02-03 17:05:36 +01:00
2017-08-30 10:21:53 +02:00
2018-01-23 19:57:08 +01:00
2017-12-14 09:28:24 +01:00
2018-02-13 12:35:55 +01:00
2018-01-31 12:55:51 +01:00
2017-03-12 06:41:52 +01:00
2018-02-03 17:05:33 +01:00
2017-12-25 14:23:46 +01:00
2018-01-10 09:29:52 +01:00
2017-12-16 16:25:46 +01:00
2017-12-29 17:43:00 +01:00
2017-10-27 10:38:08 +02:00
2018-02-03 17:05:36 +01:00
2017-12-25 14:23:46 +01:00
2018-01-10 09:29:51 +01:00
2017-08-06 18:59:43 -07:00
2017-09-27 14:39:24 +02:00
2017-12-20 10:07:27 +01:00
2017-12-09 22:01:56 +01:00
2017-12-14 09:28:22 +01:00
2017-11-21 09:23:21 +01:00
2016-11-03 14:46:39 +01:00
2017-12-20 10:07:26 +01:00
2018-02-03 17:05:35 +01:00
2018-02-03 17:05:41 +01:00
2018-02-03 17:05:35 +01:00
2018-01-17 09:38:59 +01:00
2018-02-03 17:05:38 +01:00
2017-12-20 10:07:22 +01:00
2017-12-14 09:28:21 +01:00
2017-04-12 12:41:17 +02:00
2017-12-09 22:01:49 +01:00
2018-02-03 17:05:34 +01:00
2018-01-31 12:55:53 +01:00
2018-01-10 09:29:53 +01:00
2016-10-27 18:43:43 -07:00
2017-12-20 10:07:21 +01:00
2017-12-25 14:23:42 +01:00
2017-08-30 10:21:51 +02:00
2016-10-07 14:42:05 -07:00
2016-09-20 20:57:12 +10:00
2017-08-06 18:59:42 -07:00
2017-09-09 17:39:41 +02:00
2018-02-03 17:05:37 +01:00
2018-02-03 17:05:41 +01:00
2017-12-14 09:28:16 +01:00
2016-10-17 15:43:05 +02:00
2016-09-14 14:26:19 -04:00
2017-12-29 17:42:58 +01:00
2017-12-25 14:23:36 +01:00
2017-12-20 10:07:23 +01:00
2018-02-03 17:05:35 +01:00
2018-02-03 17:05:41 +01:00
2017-08-06 18:59:42 -07:00
2017-08-30 10:21:55 +02:00
2018-01-23 19:57:03 +01:00
2017-12-25 14:23:37 +01:00
2017-08-06 18:59:48 -07:00
2017-07-27 15:08:08 -07:00
2016-10-10 20:16:43 -07:00
2017-12-29 17:42:59 +01:00
2017-06-17 06:41:54 +02:00
2017-12-29 17:42:59 +01:00
2016-11-11 08:45:08 -08:00
2016-10-17 15:50:07 +01:00
2018-01-23 19:57:07 +01:00
2018-02-13 12:35:55 +01:00
2018-01-17 09:38:51 +01:00
2018-02-03 17:05:35 +01:00
2017-01-19 20:18:07 +01:00
2016-10-11 15:06:32 -07:00
2016-09-20 20:57:12 +10:00
2016-10-13 10:20:06 -04:00
2017-04-21 09:31:22 +02:00
2017-12-14 09:28:22 +01:00
2017-11-02 09:49:15 +01:00
2017-03-12 06:41:50 +01:00
2017-10-08 10:26:03 +02:00
2017-01-26 08:24:44 +01:00
2017-12-25 14:23:46 +01:00
2018-01-02 20:35:15 +01:00
2018-02-03 17:05:40 +01:00
2017-12-20 10:07:32 +01:00
2018-02-03 17:05:43 +01:00
2017-07-27 15:08:08 -07:00
2017-01-09 08:32:16 +01:00
2018-02-03 17:05:41 +01:00
2018-01-17 09:38:54 +01:00
2017-12-25 14:23:46 +01:00
2018-02-13 12:35:56 +01:00
2018-02-03 17:05:43 +01:00
2017-10-12 11:51:19 +02:00
2017-12-25 14:23:45 +01:00
2017-12-25 14:23:37 +01:00
2017-12-25 14:23:43 +01:00
2016-10-19 08:11:43 -07:00
2017-12-25 14:23:42 +01:00
2017-03-12 06:41:50 +01:00
2017-03-12 06:41:48 +01:00
2017-10-21 17:21:33 +02:00
2017-11-30 08:39:15 +00:00
2017-05-20 14:28:35 +02:00