aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty/hvc/hvcs.c
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/tty/hvc/hvcs.c
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/tty/hvc/hvcs.c')
-rw-r--r--drivers/tty/hvc/hvcs.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/drivers/tty/hvc/hvcs.c b/drivers/tty/hvc/hvcs.c
index cab5c7adf8e8..877635733952 100644
--- a/drivers/tty/hvc/hvcs.c
+++ b/drivers/tty/hvc/hvcs.c
@@ -330,12 +330,12 @@ static int hvcs_open(struct tty_struct *tty, struct file *filp);
330static void hvcs_close(struct tty_struct *tty, struct file *filp); 330static void hvcs_close(struct tty_struct *tty, struct file *filp);
331static void hvcs_hangup(struct tty_struct * tty); 331static void hvcs_hangup(struct tty_struct * tty);
332 332
333static int __devinit hvcs_probe(struct vio_dev *dev, 333static int hvcs_probe(struct vio_dev *dev,
334 const struct vio_device_id *id); 334 const struct vio_device_id *id);
335static int __devexit hvcs_remove(struct vio_dev *dev); 335static int hvcs_remove(struct vio_dev *dev);
336static int __init hvcs_module_init(void); 336static int __init hvcs_module_init(void);
337static void __exit hvcs_module_exit(void); 337static void __exit hvcs_module_exit(void);
338static int __devinit hvcs_initialize(void); 338static int hvcs_initialize(void);
339 339
340#define HVCS_SCHED_READ 0x00000001 340#define HVCS_SCHED_READ 0x00000001
341#define HVCS_QUICK_READ 0x00000002 341#define HVCS_QUICK_READ 0x00000002
@@ -676,7 +676,7 @@ static int khvcsd(void *unused)
676 return 0; 676 return 0;
677} 677}
678 678
679static struct vio_device_id hvcs_driver_table[] __devinitdata= { 679static struct vio_device_id hvcs_driver_table[] = {
680 {"serial-server", "hvterm2"}, 680 {"serial-server", "hvterm2"},
681 { "", "" } 681 { "", "" }
682}; 682};
@@ -756,7 +756,7 @@ static int hvcs_get_index(void)
756 return -1; 756 return -1;
757} 757}
758 758
759static int __devinit hvcs_probe( 759static int hvcs_probe(
760 struct vio_dev *dev, 760 struct vio_dev *dev,
761 const struct vio_device_id *id) 761 const struct vio_device_id *id)
762{ 762{
@@ -835,7 +835,7 @@ static int __devinit hvcs_probe(
835 return 0; 835 return 0;
836} 836}
837 837
838static int __devexit hvcs_remove(struct vio_dev *dev) 838static int hvcs_remove(struct vio_dev *dev)
839{ 839{
840 struct hvcs_struct *hvcsd = dev_get_drvdata(&dev->dev); 840 struct hvcs_struct *hvcsd = dev_get_drvdata(&dev->dev);
841 unsigned long flags; 841 unsigned long flags;
@@ -874,7 +874,7 @@ static int __devexit hvcs_remove(struct vio_dev *dev)
874static struct vio_driver hvcs_vio_driver = { 874static struct vio_driver hvcs_vio_driver = {
875 .id_table = hvcs_driver_table, 875 .id_table = hvcs_driver_table,
876 .probe = hvcs_probe, 876 .probe = hvcs_probe,
877 .remove = __devexit_p(hvcs_remove), 877 .remove = hvcs_remove,
878 .name = hvcs_driver_name, 878 .name = hvcs_driver_name,
879}; 879};
880 880
@@ -1478,7 +1478,7 @@ static void hvcs_free_index_list(void)
1478 hvcs_index_count = 0; 1478 hvcs_index_count = 0;
1479} 1479}
1480 1480
1481static int __devinit hvcs_initialize(void) 1481static int hvcs_initialize(void)
1482{ 1482{
1483 int rc, num_ttys_to_alloc; 1483 int rc, num_ttys_to_alloc;
1484 1484
@@ -1496,8 +1496,10 @@ static int __devinit hvcs_initialize(void)
1496 num_ttys_to_alloc = hvcs_parm_num_devs; 1496 num_ttys_to_alloc = hvcs_parm_num_devs;
1497 1497
1498 hvcs_tty_driver = alloc_tty_driver(num_ttys_to_alloc); 1498 hvcs_tty_driver = alloc_tty_driver(num_ttys_to_alloc);
1499 if (!hvcs_tty_driver) 1499 if (!hvcs_tty_driver) {
1500 mutex_unlock(&hvcs_init_mutex);
1500 return -ENOMEM; 1501 return -ENOMEM;
1502 }
1501 1503
1502 if (hvcs_alloc_index_list(num_ttys_to_alloc)) { 1504 if (hvcs_alloc_index_list(num_ttys_to_alloc)) {
1503 rc = -ENOMEM; 1505 rc = -ENOMEM;