Thomas Pfaff
7deb39ed8d
serial_core: fix uart PORT_UNKNOWN handling
...
While porting a RS485 driver from 2.6.29 to 3.14, i noticed that the serial tty
driver could break it by using uart ports that it does not own :
1. uart_change_pm ist called during uart_open and calls the uart pm function
without checking for PORT_UNKNOWN.
The fix is to move uart_change_pm from uart_open to uart_port_startup.
2. The return code from the uart request_port call in uart_set_info is not
handled properly, leading to the situation that the serial driver also
thinks it owns the uart ports.
This can triggered by doing following actions :
setserial /dev/ttyS0 uart none # release the uart ports
modprobe lirc-serial # or any other device that uses the uart
setserial /dev/ttyS0 uart 16550 # gives no error and the uart tty driver
# can use the ports as well
Signed-off-by: Thomas Pfaff <tpfaff@pcs.com >
Reviewed-by: Alan Cox <alan@linux.intel.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2014-04-24 15:38:22 -07:00
..
2014-04-24 15:18:02 -07: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
2014-04-16 14:31:13 -07: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-04-05 13:51:19 -07:00
2014-02-28 16:27:18 -08: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-04-16 14:17:44 -07:00
2014-02-15 12:16:21 -08: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
2014-04-16 14:17:43 -07:00
2014-02-18 12:50:26 -08:00
2013-12-08 17:16:05 -08: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
2014-02-28 16:36:45 -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-04-16 14:17:44 -07: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
2014-03-17 16:13:23 -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
2014-01-12 18:53:05 +01: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
2014-02-12 11:34:23 -08:00
2014-02-12 11:34:23 -08: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
2014-04-16 14:19:13 -07:00
2014-02-13 09:17:31 -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
2014-04-24 15:38:22 -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
2014-04-24 15:38:22 -07:00
2013-01-15 22:30:15 -08:00
2013-09-26 15:41:38 -07:00
2013-12-11 16:44:35 -07:00
2014-04-01 16:55:57 -07:00
2013-12-24 11:17:48 +09:00
2014-02-13 10:36:25 -08:00
2014-02-13 10:36:25 -08:00
2013-01-15 22:30:15 -08:00
2014-04-16 14:17:44 -07:00
2012-02-10 10:44:35 -08:00
2014-03-06 16:32:25 -05:00
2014-03-06 16:32:25 -05:00
2011-01-13 12:10:18 -08:00
2014-03-06 16:32:25 -05:00
2014-03-06 16:32:25 -05: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