aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-12-11 17:08:47 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-12-11 17:08:47 -0500
commitc6bd5bcc4983f1a2d2f87a3769bf309482ee8c04 (patch)
tree2ff9c4496dc2258d601a1bcd82040470704dae3b /drivers/char
parent8966961b31c251b854169e9886394c2a20f2cea7 (diff)
parentb0ab02361167faa82198b783a8d555eb6f58901c (diff)
Merge tag 'tty-3.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
Pull TTY/Serial merge from Greg Kroah-Hartman: "Here's the big tty/serial tree set of changes for 3.8-rc1. Contained in here is a bunch more reworks of the tty port layer from Jiri and bugfixes from Alan, along with a number of other tty and serial driver updates by the various driver authors. Also, Jiri has been coerced^Wconvinced to be the co-maintainer of the TTY layer, which is much appreciated by me. All of these have been in the linux-next tree for a while. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>" Fixed up some trivial conflicts in the staging tree, due to the fwserial driver having come in both ways (but fixed up a bit in the serial tree), and the ioctl handling in the dgrp driver having been done slightly differently (staging tree got that one right, and removed both TIOCGSOFTCAR and TIOCSSOFTCAR). * tag 'tty-3.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (146 commits) staging: sb105x: fix potential NULL pointer dereference in mp_chars_in_buffer() staging/fwserial: Remove superfluous free staging/fwserial: Use WARN_ONCE when port table is corrupted staging/fwserial: Destruct embedded tty_port on teardown staging/fwserial: Fix build breakage when !CONFIG_BUG staging: fwserial: Add TTY-over-Firewire serial driver drivers/tty/serial/serial_core.c: clean up HIGH_BITS_OFFSET usage staging: dgrp: dgrp_tty.c: Audit the return values of get/put_user() staging: dgrp: dgrp_tty.c: Remove the TIOCSSOFTCAR ioctl handler from dgrp driver serial: ifx6x60: Add modem power off function in the platform reboot process serial: mxs-auart: unmap the scatter list before we copy the data serial: mxs-auart: disable the Receive Timeout Interrupt when DMA is enabled serial: max310x: Setup missing "can_sleep" field for GPIO tty/serial: fix ifx6x60.c declaration warning serial: samsung: add devicetree properties for non-Exynos SoCs serial: samsung: fix potential soft lockup during uart write tty: vt: Remove redundant null check before kfree. tty/8250 Add check for pci_ioremap_bar failure tty/8250 Add support for Commtech's Fastcom Async-335 and Fastcom Async-PCIe cards tty/8250 Add XR17D15x devices to the exar_handle_irq override ...
Diffstat (limited to 'drivers/char')
-rw-r--r--drivers/char/pcmcia/synclink_cs.c5
-rw-r--r--drivers/char/ttyprintk.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/drivers/char/pcmcia/synclink_cs.c b/drivers/char/pcmcia/synclink_cs.c
index 21721d25e388..b66eaa04f8cb 100644
--- a/drivers/char/pcmcia/synclink_cs.c
+++ b/drivers/char/pcmcia/synclink_cs.c
@@ -549,8 +549,10 @@ static int mgslpc_probe(struct pcmcia_device *link)
549 /* Initialize the struct pcmcia_device structure */ 549 /* Initialize the struct pcmcia_device structure */
550 550
551 ret = mgslpc_config(link); 551 ret = mgslpc_config(link);
552 if (ret) 552 if (ret) {
553 tty_port_destroy(&info->port);
553 return ret; 554 return ret;
555 }
554 556
555 mgslpc_add_device(info); 557 mgslpc_add_device(info);
556 558
@@ -2757,6 +2759,7 @@ static void mgslpc_remove_device(MGSLPC_INFO *remove_info)
2757 hdlcdev_exit(info); 2759 hdlcdev_exit(info);
2758#endif 2760#endif
2759 release_resources(info); 2761 release_resources(info);
2762 tty_port_destroy(&info->port);
2760 kfree(info); 2763 kfree(info);
2761 mgslpc_device_count--; 2764 mgslpc_device_count--;
2762 return; 2765 return;
diff --git a/drivers/char/ttyprintk.c b/drivers/char/ttyprintk.c
index af98f6d6509b..4945bd3d18d0 100644
--- a/drivers/char/ttyprintk.c
+++ b/drivers/char/ttyprintk.c
@@ -179,7 +179,6 @@ static int __init ttyprintk_init(void)
179{ 179{
180 int ret = -ENOMEM; 180 int ret = -ENOMEM;
181 181
182 tty_port_init(&tpk_port.port);
183 tpk_port.port.ops = &null_ops; 182 tpk_port.port.ops = &null_ops;
184 mutex_init(&tpk_port.port_write_mutex); 183 mutex_init(&tpk_port.port_write_mutex);
185 184
@@ -190,6 +189,8 @@ static int __init ttyprintk_init(void)
190 if (IS_ERR(ttyprintk_driver)) 189 if (IS_ERR(ttyprintk_driver))
191 return PTR_ERR(ttyprintk_driver); 190 return PTR_ERR(ttyprintk_driver);
192 191
192 tty_port_init(&tpk_port.port);
193
193 ttyprintk_driver->driver_name = "ttyprintk"; 194 ttyprintk_driver->driver_name = "ttyprintk";
194 ttyprintk_driver->name = "ttyprintk"; 195 ttyprintk_driver->name = "ttyprintk";
195 ttyprintk_driver->major = TTYAUX_MAJOR; 196 ttyprintk_driver->major = TTYAUX_MAJOR;
@@ -211,6 +212,7 @@ static int __init ttyprintk_init(void)
211error: 212error:
212 tty_unregister_driver(ttyprintk_driver); 213 tty_unregister_driver(ttyprintk_driver);
213 put_tty_driver(ttyprintk_driver); 214 put_tty_driver(ttyprintk_driver);
215 tty_port_destroy(&tpk_port.port);
214 ttyprintk_driver = NULL; 216 ttyprintk_driver = NULL;
215 return ret; 217 return ret;
216} 218}