diff options
-rw-r--r-- | arch/ia64/hp/sim/simserial.c | 9 | ||||
-rw-r--r-- | arch/xtensa/platforms/iss/console.c | 8 | ||||
-rw-r--r-- | drivers/char/pcmcia/synclink_cs.c | 2 | ||||
-rw-r--r-- | drivers/isdn/capi/capi.c | 3 | ||||
-rw-r--r-- | drivers/isdn/gigaset/common.c | 2 | ||||
-rw-r--r-- | drivers/isdn/i4l/isdn_tty.c | 7 | ||||
-rw-r--r-- | drivers/s390/char/con3215.c | 8 | ||||
-rw-r--r-- | drivers/tty/amiserial.c | 10 | ||||
-rw-r--r-- | drivers/tty/cyclades.c | 6 | ||||
-rw-r--r-- | drivers/tty/hvc/hvcs.c | 24 | ||||
-rw-r--r-- | drivers/tty/hvc/hvsi.c | 5 | ||||
-rw-r--r-- | drivers/tty/isicom.c | 2 | ||||
-rw-r--r-- | drivers/tty/mxser.c | 2 | ||||
-rw-r--r-- | drivers/tty/rocket.c | 6 | ||||
-rw-r--r-- | drivers/tty/serial/68328serial.c | 9 | ||||
-rw-r--r-- | drivers/tty/serial/crisv10.c | 15 | ||||
-rw-r--r-- | drivers/tty/synclink.c | 2 | ||||
-rw-r--r-- | drivers/tty/synclink_gt.c | 2 | ||||
-rw-r--r-- | drivers/tty/synclinkmp.c | 2 | ||||
-rw-r--r-- | drivers/usb/gadget/u_serial.c | 3 | ||||
-rw-r--r-- | net/irda/ircomm/ircomm_tty.c | 6 |
21 files changed, 38 insertions, 95 deletions
diff --git a/arch/ia64/hp/sim/simserial.c b/arch/ia64/hp/sim/simserial.c index f513dc02bb87..2a2fe0c56119 100644 --- a/arch/ia64/hp/sim/simserial.c +++ b/arch/ia64/hp/sim/simserial.c | |||
@@ -769,13 +769,10 @@ errout: | |||
769 | static int rs_open(struct tty_struct *tty, struct file * filp) | 769 | static int rs_open(struct tty_struct *tty, struct file * filp) |
770 | { | 770 | { |
771 | struct async_struct *info; | 771 | struct async_struct *info; |
772 | int retval, line; | 772 | int retval; |
773 | unsigned long page; | 773 | unsigned long page; |
774 | 774 | ||
775 | line = tty->index; | 775 | retval = get_async_struct(tty->index, &info); |
776 | if ((line < 0) || (line >= NR_PORTS)) | ||
777 | return -ENODEV; | ||
778 | retval = get_async_struct(line, &info); | ||
779 | if (retval) | 776 | if (retval) |
780 | return retval; | 777 | return retval; |
781 | tty->driver_data = info; | 778 | tty->driver_data = info; |
@@ -920,7 +917,7 @@ simrs_init (void) | |||
920 | if (!ia64_platform_is("hpsim")) | 917 | if (!ia64_platform_is("hpsim")) |
921 | return -ENODEV; | 918 | return -ENODEV; |
922 | 919 | ||
923 | hp_simserial_driver = alloc_tty_driver(1); | 920 | hp_simserial_driver = alloc_tty_driver(NR_PORTS); |
924 | if (!hp_simserial_driver) | 921 | if (!hp_simserial_driver) |
925 | return -ENOMEM; | 922 | return -ENOMEM; |
926 | 923 | ||
diff --git a/arch/xtensa/platforms/iss/console.c b/arch/xtensa/platforms/iss/console.c index 247e9d40a52e..19a802a13096 100644 --- a/arch/xtensa/platforms/iss/console.c +++ b/arch/xtensa/platforms/iss/console.c | |||
@@ -68,11 +68,6 @@ static void rs_poll(unsigned long); | |||
68 | 68 | ||
69 | static int rs_open(struct tty_struct *tty, struct file * filp) | 69 | static int rs_open(struct tty_struct *tty, struct file * filp) |
70 | { | 70 | { |
71 | int line = tty->index; | ||
72 | |||
73 | if ((line < 0) || (line >= SERIAL_MAX_NUM_LINES)) | ||
74 | return -ENODEV; | ||
75 | |||
76 | spin_lock(&timer_lock); | 71 | spin_lock(&timer_lock); |
77 | 72 | ||
78 | if (tty->count == 1) { | 73 | if (tty->count == 1) { |
@@ -101,6 +96,7 @@ static void rs_close(struct tty_struct *tty, struct file * filp) | |||
101 | { | 96 | { |
102 | spin_lock(&timer_lock); | 97 | spin_lock(&timer_lock); |
103 | if (tty->count == 1) | 98 | if (tty->count == 1) |
99 | /* this will cause a deadlock if the timer ticks right now */ | ||
104 | del_timer_sync(&serial_timer); | 100 | del_timer_sync(&serial_timer); |
105 | spin_unlock(&timer_lock); | 101 | spin_unlock(&timer_lock); |
106 | } | 102 | } |
@@ -210,7 +206,7 @@ static const struct tty_operations serial_ops = { | |||
210 | 206 | ||
211 | int __init rs_init(void) | 207 | int __init rs_init(void) |
212 | { | 208 | { |
213 | serial_driver = alloc_tty_driver(1); | 209 | serial_driver = alloc_tty_driver(SERIAL_MAX_NUM_LINES); |
214 | 210 | ||
215 | printk ("%s %s\n", serial_name, serial_version); | 211 | printk ("%s %s\n", serial_name, serial_version); |
216 | 212 | ||
diff --git a/drivers/char/pcmcia/synclink_cs.c b/drivers/char/pcmcia/synclink_cs.c index c3bcb1221e6b..f6453df4921c 100644 --- a/drivers/char/pcmcia/synclink_cs.c +++ b/drivers/char/pcmcia/synclink_cs.c | |||
@@ -2484,7 +2484,7 @@ static int mgslpc_open(struct tty_struct *tty, struct file * filp) | |||
2484 | 2484 | ||
2485 | /* verify range of specified line number */ | 2485 | /* verify range of specified line number */ |
2486 | line = tty->index; | 2486 | line = tty->index; |
2487 | if ((line < 0) || (line >= mgslpc_device_count)) { | 2487 | if (line >= mgslpc_device_count) { |
2488 | printk("%s(%d):mgslpc_open with invalid line #%d.\n", | 2488 | printk("%s(%d):mgslpc_open with invalid line #%d.\n", |
2489 | __FILE__,__LINE__,line); | 2489 | __FILE__,__LINE__,line); |
2490 | return -ENODEV; | 2490 | return -ENODEV; |
diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c index baf08eba495c..3a7905b06e53 100644 --- a/drivers/isdn/capi/capi.c +++ b/drivers/isdn/capi/capi.c | |||
@@ -1013,8 +1013,7 @@ static const struct file_operations capi_fops = | |||
1013 | static int | 1013 | static int |
1014 | capinc_tty_install(struct tty_driver *driver, struct tty_struct *tty) | 1014 | capinc_tty_install(struct tty_driver *driver, struct tty_struct *tty) |
1015 | { | 1015 | { |
1016 | int idx = tty->index; | 1016 | struct capiminor *mp = capiminor_get(tty->index); |
1017 | struct capiminor *mp = capiminor_get(idx); | ||
1018 | int ret = tty_standard_install(driver, tty); | 1017 | int ret = tty_standard_install(driver, tty); |
1019 | 1018 | ||
1020 | if (ret == 0) | 1019 | if (ret == 0) |
diff --git a/drivers/isdn/gigaset/common.c b/drivers/isdn/gigaset/common.c index db621db67f61..ac0186e54bf4 100644 --- a/drivers/isdn/gigaset/common.c +++ b/drivers/isdn/gigaset/common.c | |||
@@ -1051,8 +1051,6 @@ static struct cardstate *gigaset_get_cs_by_minor(unsigned minor) | |||
1051 | 1051 | ||
1052 | struct cardstate *gigaset_get_cs_by_tty(struct tty_struct *tty) | 1052 | struct cardstate *gigaset_get_cs_by_tty(struct tty_struct *tty) |
1053 | { | 1053 | { |
1054 | if (tty->index < 0 || tty->index >= tty->driver->num) | ||
1055 | return NULL; | ||
1056 | return gigaset_get_cs_by_minor(tty->index + tty->driver->minor_start); | 1054 | return gigaset_get_cs_by_minor(tty->index + tty->driver->minor_start); |
1057 | } | 1055 | } |
1058 | 1056 | ||
diff --git a/drivers/isdn/i4l/isdn_tty.c b/drivers/isdn/i4l/isdn_tty.c index 2c26b64ebbea..ac4840124bc0 100644 --- a/drivers/isdn/i4l/isdn_tty.c +++ b/drivers/isdn/i4l/isdn_tty.c | |||
@@ -1590,12 +1590,9 @@ static int | |||
1590 | isdn_tty_open(struct tty_struct *tty, struct file *filp) | 1590 | isdn_tty_open(struct tty_struct *tty, struct file *filp) |
1591 | { | 1591 | { |
1592 | modem_info *info; | 1592 | modem_info *info; |
1593 | int retval, line; | 1593 | int retval; |
1594 | 1594 | ||
1595 | line = tty->index; | 1595 | info = &dev->mdm.info[tty->index]; |
1596 | if (line < 0 || line >= ISDN_MAX_CHANNELS) | ||
1597 | return -ENODEV; | ||
1598 | info = &dev->mdm.info[line]; | ||
1599 | if (isdn_tty_paranoia_check(info, tty->name, "isdn_tty_open")) | 1596 | if (isdn_tty_paranoia_check(info, tty->name, "isdn_tty_open")) |
1600 | return -ENODEV; | 1597 | return -ENODEV; |
1601 | if (!try_module_get(info->owner)) { | 1598 | if (!try_module_get(info->owner)) { |
diff --git a/drivers/s390/char/con3215.c b/drivers/s390/char/con3215.c index fe916bfd60f2..ed23fec7abbe 100644 --- a/drivers/s390/char/con3215.c +++ b/drivers/s390/char/con3215.c | |||
@@ -926,13 +926,9 @@ console_initcall(con3215_init); | |||
926 | static int tty3215_open(struct tty_struct *tty, struct file * filp) | 926 | static int tty3215_open(struct tty_struct *tty, struct file * filp) |
927 | { | 927 | { |
928 | struct raw3215_info *raw; | 928 | struct raw3215_info *raw; |
929 | int retval, line; | 929 | int retval; |
930 | 930 | ||
931 | line = tty->index; | 931 | raw = raw3215[tty->index]; |
932 | if ((line < 0) || (line >= NR_3215)) | ||
933 | return -ENODEV; | ||
934 | |||
935 | raw = raw3215[line]; | ||
936 | if (raw == NULL) | 932 | if (raw == NULL) |
937 | return -ENODEV; | 933 | return -ENODEV; |
938 | 934 | ||
diff --git a/drivers/tty/amiserial.c b/drivers/tty/amiserial.c index b42f00d987ae..753286257554 100644 --- a/drivers/tty/amiserial.c +++ b/drivers/tty/amiserial.c | |||
@@ -1768,13 +1768,9 @@ static int get_async_struct(int line, struct async_struct **ret_info) | |||
1768 | static int rs_open(struct tty_struct *tty, struct file * filp) | 1768 | static int rs_open(struct tty_struct *tty, struct file * filp) |
1769 | { | 1769 | { |
1770 | struct async_struct *info; | 1770 | struct async_struct *info; |
1771 | int retval, line; | 1771 | int retval; |
1772 | 1772 | ||
1773 | line = tty->index; | 1773 | retval = get_async_struct(tty->index, &info); |
1774 | if ((line < 0) || (line >= NR_PORTS)) { | ||
1775 | return -ENODEV; | ||
1776 | } | ||
1777 | retval = get_async_struct(line, &info); | ||
1778 | if (retval) { | 1774 | if (retval) { |
1779 | return retval; | 1775 | return retval; |
1780 | } | 1776 | } |
@@ -1964,7 +1960,7 @@ static int __init amiga_serial_probe(struct platform_device *pdev) | |||
1964 | struct serial_state * state; | 1960 | struct serial_state * state; |
1965 | int error; | 1961 | int error; |
1966 | 1962 | ||
1967 | serial_driver = alloc_tty_driver(1); | 1963 | serial_driver = alloc_tty_driver(NR_PORTS); |
1968 | if (!serial_driver) | 1964 | if (!serial_driver) |
1969 | return -ENOMEM; | 1965 | return -ENOMEM; |
1970 | 1966 | ||
diff --git a/drivers/tty/cyclades.c b/drivers/tty/cyclades.c index bc7b5a5650ba..e61cabdd69df 100644 --- a/drivers/tty/cyclades.c +++ b/drivers/tty/cyclades.c | |||
@@ -1515,13 +1515,9 @@ static void cy_shutdown(struct cyclades_port *info, struct tty_struct *tty) | |||
1515 | static int cy_open(struct tty_struct *tty, struct file *filp) | 1515 | static int cy_open(struct tty_struct *tty, struct file *filp) |
1516 | { | 1516 | { |
1517 | struct cyclades_port *info; | 1517 | struct cyclades_port *info; |
1518 | unsigned int i, line; | 1518 | unsigned int i, line = tty->index; |
1519 | int retval; | 1519 | int retval; |
1520 | 1520 | ||
1521 | line = tty->index; | ||
1522 | if (tty->index < 0 || NR_PORTS <= line) | ||
1523 | return -ENODEV; | ||
1524 | |||
1525 | for (i = 0; i < NR_CARDS; i++) | 1521 | for (i = 0; i < NR_CARDS; i++) |
1526 | if (line < cy_card[i].first_line + cy_card[i].nports && | 1522 | if (line < cy_card[i].first_line + cy_card[i].nports && |
1527 | line >= cy_card[i].first_line) | 1523 | line >= cy_card[i].first_line) |
diff --git a/drivers/tty/hvc/hvcs.c b/drivers/tty/hvc/hvcs.c index da0aa476804d..d23759183b47 100644 --- a/drivers/tty/hvc/hvcs.c +++ b/drivers/tty/hvc/hvcs.c | |||
@@ -1090,27 +1090,23 @@ static int hvcs_enable_device(struct hvcs_struct *hvcsd, uint32_t unit_address, | |||
1090 | */ | 1090 | */ |
1091 | static struct hvcs_struct *hvcs_get_by_index(int index) | 1091 | static struct hvcs_struct *hvcs_get_by_index(int index) |
1092 | { | 1092 | { |
1093 | struct hvcs_struct *hvcsd = NULL; | 1093 | struct hvcs_struct *hvcsd; |
1094 | unsigned long flags; | 1094 | unsigned long flags; |
1095 | 1095 | ||
1096 | spin_lock(&hvcs_structs_lock); | 1096 | spin_lock(&hvcs_structs_lock); |
1097 | /* We can immediately discard OOB requests */ | 1097 | list_for_each_entry(hvcsd, &hvcs_structs, next) { |
1098 | if (index >= 0 && index < HVCS_MAX_SERVER_ADAPTERS) { | 1098 | spin_lock_irqsave(&hvcsd->lock, flags); |
1099 | list_for_each_entry(hvcsd, &hvcs_structs, next) { | 1099 | if (hvcsd->index == index) { |
1100 | spin_lock_irqsave(&hvcsd->lock, flags); | 1100 | kref_get(&hvcsd->kref); |
1101 | if (hvcsd->index == index) { | ||
1102 | kref_get(&hvcsd->kref); | ||
1103 | spin_unlock_irqrestore(&hvcsd->lock, flags); | ||
1104 | spin_unlock(&hvcs_structs_lock); | ||
1105 | return hvcsd; | ||
1106 | } | ||
1107 | spin_unlock_irqrestore(&hvcsd->lock, flags); | 1101 | spin_unlock_irqrestore(&hvcsd->lock, flags); |
1102 | spin_unlock(&hvcs_structs_lock); | ||
1103 | return hvcsd; | ||
1108 | } | 1104 | } |
1109 | hvcsd = NULL; | 1105 | spin_unlock_irqrestore(&hvcsd->lock, flags); |
1110 | } | 1106 | } |
1111 | |||
1112 | spin_unlock(&hvcs_structs_lock); | 1107 | spin_unlock(&hvcs_structs_lock); |
1113 | return hvcsd; | 1108 | |
1109 | return NULL; | ||
1114 | } | 1110 | } |
1115 | 1111 | ||
1116 | /* | 1112 | /* |
diff --git a/drivers/tty/hvc/hvsi.c b/drivers/tty/hvc/hvsi.c index 60bc45164189..a7488b748647 100644 --- a/drivers/tty/hvc/hvsi.c +++ b/drivers/tty/hvc/hvsi.c | |||
@@ -737,14 +737,11 @@ static int hvsi_open(struct tty_struct *tty, struct file *filp) | |||
737 | { | 737 | { |
738 | struct hvsi_struct *hp; | 738 | struct hvsi_struct *hp; |
739 | unsigned long flags; | 739 | unsigned long flags; |
740 | int line = tty->index; | ||
741 | int ret; | 740 | int ret; |
742 | 741 | ||
743 | pr_debug("%s\n", __func__); | 742 | pr_debug("%s\n", __func__); |
744 | 743 | ||
745 | if (line < 0 || line >= hvsi_count) | 744 | hp = &hvsi_ports[tty->index]; |
746 | return -ENODEV; | ||
747 | hp = &hvsi_ports[line]; | ||
748 | 745 | ||
749 | tty->driver_data = hp; | 746 | tty->driver_data = hp; |
750 | 747 | ||
diff --git a/drivers/tty/isicom.c b/drivers/tty/isicom.c index b3a28b5f02ad..03c14979accf 100644 --- a/drivers/tty/isicom.c +++ b/drivers/tty/isicom.c | |||
@@ -849,8 +849,6 @@ static struct tty_port *isicom_find_port(struct tty_struct *tty) | |||
849 | unsigned int board; | 849 | unsigned int board; |
850 | int line = tty->index; | 850 | int line = tty->index; |
851 | 851 | ||
852 | if (line < 0 || line > PORT_COUNT-1) | ||
853 | return NULL; | ||
854 | board = BOARD(line); | 852 | board = BOARD(line); |
855 | card = &isi_card[board]; | 853 | card = &isi_card[board]; |
856 | 854 | ||
diff --git a/drivers/tty/mxser.c b/drivers/tty/mxser.c index 260d03123524..17ff377e4129 100644 --- a/drivers/tty/mxser.c +++ b/drivers/tty/mxser.c | |||
@@ -1010,8 +1010,6 @@ static int mxser_open(struct tty_struct *tty, struct file *filp) | |||
1010 | line = tty->index; | 1010 | line = tty->index; |
1011 | if (line == MXSER_PORTS) | 1011 | if (line == MXSER_PORTS) |
1012 | return 0; | 1012 | return 0; |
1013 | if (line < 0 || line > MXSER_PORTS) | ||
1014 | return -ENODEV; | ||
1015 | info = &mxser_boards[line / MXSER_PORTS_PER_BOARD].ports[line % MXSER_PORTS_PER_BOARD]; | 1013 | info = &mxser_boards[line / MXSER_PORTS_PER_BOARD].ports[line % MXSER_PORTS_PER_BOARD]; |
1016 | if (!info->ioaddr) | 1014 | if (!info->ioaddr) |
1017 | return -ENODEV; | 1015 | return -ENODEV; |
diff --git a/drivers/tty/rocket.c b/drivers/tty/rocket.c index b088e1ea4331..777d5f9cf6cc 100644 --- a/drivers/tty/rocket.c +++ b/drivers/tty/rocket.c | |||
@@ -892,12 +892,12 @@ static int rp_open(struct tty_struct *tty, struct file *filp) | |||
892 | { | 892 | { |
893 | struct r_port *info; | 893 | struct r_port *info; |
894 | struct tty_port *port; | 894 | struct tty_port *port; |
895 | int line = 0, retval; | 895 | int retval; |
896 | CHANNEL_t *cp; | 896 | CHANNEL_t *cp; |
897 | unsigned long page; | 897 | unsigned long page; |
898 | 898 | ||
899 | line = tty->index; | 899 | info = rp_table[tty->index]; |
900 | if (line < 0 || line >= MAX_RP_PORTS || ((info = rp_table[line]) == NULL)) | 900 | if (info == NULL) |
901 | return -ENXIO; | 901 | return -ENXIO; |
902 | port = &info->port; | 902 | port = &info->port; |
903 | 903 | ||
diff --git a/drivers/tty/serial/68328serial.c b/drivers/tty/serial/68328serial.c index a88ef9782a4f..7398390e7e65 100644 --- a/drivers/tty/serial/68328serial.c +++ b/drivers/tty/serial/68328serial.c | |||
@@ -1190,14 +1190,9 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp, | |||
1190 | int rs_open(struct tty_struct *tty, struct file * filp) | 1190 | int rs_open(struct tty_struct *tty, struct file * filp) |
1191 | { | 1191 | { |
1192 | struct m68k_serial *info; | 1192 | struct m68k_serial *info; |
1193 | int retval, line; | 1193 | int retval; |
1194 | |||
1195 | line = tty->index; | ||
1196 | |||
1197 | if (line >= NR_PORTS || line < 0) /* we have exactly one */ | ||
1198 | return -ENODEV; | ||
1199 | 1194 | ||
1200 | info = &m68k_soft[line]; | 1195 | info = &m68k_soft[tty->index]; |
1201 | 1196 | ||
1202 | if (serial_paranoia_check(info, tty->name, "rs_open")) | 1197 | if (serial_paranoia_check(info, tty->name, "rs_open")) |
1203 | return -ENODEV; | 1198 | return -ENODEV; |
diff --git a/drivers/tty/serial/crisv10.c b/drivers/tty/serial/crisv10.c index 1dfba7b779c8..23d791696879 100644 --- a/drivers/tty/serial/crisv10.c +++ b/drivers/tty/serial/crisv10.c | |||
@@ -4105,20 +4105,11 @@ static int | |||
4105 | rs_open(struct tty_struct *tty, struct file * filp) | 4105 | rs_open(struct tty_struct *tty, struct file * filp) |
4106 | { | 4106 | { |
4107 | struct e100_serial *info; | 4107 | struct e100_serial *info; |
4108 | int retval, line; | 4108 | int retval; |
4109 | unsigned long page; | 4109 | unsigned long page; |
4110 | int allocated_resources = 0; | 4110 | int allocated_resources = 0; |
4111 | 4111 | ||
4112 | /* find which port we want to open */ | 4112 | info = rs_table + tty->index; |
4113 | line = tty->index; | ||
4114 | |||
4115 | if (line < 0 || line >= NR_PORTS) | ||
4116 | return -ENODEV; | ||
4117 | |||
4118 | /* find the corresponding e100_serial struct in the table */ | ||
4119 | info = rs_table + line; | ||
4120 | |||
4121 | /* don't allow the opening of ports that are not enabled in the HW config */ | ||
4122 | if (!info->enabled) | 4113 | if (!info->enabled) |
4123 | return -ENODEV; | 4114 | return -ENODEV; |
4124 | 4115 | ||
@@ -4131,7 +4122,7 @@ rs_open(struct tty_struct *tty, struct file * filp) | |||
4131 | tty->driver_data = info; | 4122 | tty->driver_data = info; |
4132 | info->port.tty = tty; | 4123 | info->port.tty = tty; |
4133 | 4124 | ||
4134 | info->port.tty->low_latency = (info->flags & ASYNC_LOW_LATENCY) ? 1 : 0; | 4125 | tty->low_latency = !!(info->flags & ASYNC_LOW_LATENCY); |
4135 | 4126 | ||
4136 | if (!tmp_buf) { | 4127 | if (!tmp_buf) { |
4137 | page = get_zeroed_page(GFP_KERNEL); | 4128 | page = get_zeroed_page(GFP_KERNEL); |
diff --git a/drivers/tty/synclink.c b/drivers/tty/synclink.c index 2b2988c779c7..8e518da85fd5 100644 --- a/drivers/tty/synclink.c +++ b/drivers/tty/synclink.c | |||
@@ -3381,7 +3381,7 @@ static int mgsl_open(struct tty_struct *tty, struct file * filp) | |||
3381 | 3381 | ||
3382 | /* verify range of specified line number */ | 3382 | /* verify range of specified line number */ |
3383 | line = tty->index; | 3383 | line = tty->index; |
3384 | if ((line < 0) || (line >= mgsl_device_count)) { | 3384 | if (line >= mgsl_device_count) { |
3385 | printk("%s(%d):mgsl_open with invalid line #%d.\n", | 3385 | printk("%s(%d):mgsl_open with invalid line #%d.\n", |
3386 | __FILE__,__LINE__,line); | 3386 | __FILE__,__LINE__,line); |
3387 | return -ENODEV; | 3387 | return -ENODEV; |
diff --git a/drivers/tty/synclink_gt.c b/drivers/tty/synclink_gt.c index a8b66be37e6e..6bee4907c6a5 100644 --- a/drivers/tty/synclink_gt.c +++ b/drivers/tty/synclink_gt.c | |||
@@ -654,7 +654,7 @@ static int open(struct tty_struct *tty, struct file *filp) | |||
654 | unsigned long flags; | 654 | unsigned long flags; |
655 | 655 | ||
656 | line = tty->index; | 656 | line = tty->index; |
657 | if ((line < 0) || (line >= slgt_device_count)) { | 657 | if (line >= slgt_device_count) { |
658 | DBGERR(("%s: open with invalid line #%d.\n", driver_name, line)); | 658 | DBGERR(("%s: open with invalid line #%d.\n", driver_name, line)); |
659 | return -ENODEV; | 659 | return -ENODEV; |
660 | } | 660 | } |
diff --git a/drivers/tty/synclinkmp.c b/drivers/tty/synclinkmp.c index ddabb61c85ba..4fb6c4b31b79 100644 --- a/drivers/tty/synclinkmp.c +++ b/drivers/tty/synclinkmp.c | |||
@@ -721,7 +721,7 @@ static int open(struct tty_struct *tty, struct file *filp) | |||
721 | unsigned long flags; | 721 | unsigned long flags; |
722 | 722 | ||
723 | line = tty->index; | 723 | line = tty->index; |
724 | if ((line < 0) || (line >= synclinkmp_device_count)) { | 724 | if (line >= synclinkmp_device_count) { |
725 | printk("%s(%d): open with invalid line #%d.\n", | 725 | printk("%s(%d): open with invalid line #%d.\n", |
726 | __FILE__,__LINE__,line); | 726 | __FILE__,__LINE__,line); |
727 | return -ENODEV; | 727 | return -ENODEV; |
diff --git a/drivers/usb/gadget/u_serial.c b/drivers/usb/gadget/u_serial.c index 490b01dd5d60..6c23938d2711 100644 --- a/drivers/usb/gadget/u_serial.c +++ b/drivers/usb/gadget/u_serial.c | |||
@@ -725,9 +725,6 @@ static int gs_open(struct tty_struct *tty, struct file *file) | |||
725 | struct gs_port *port; | 725 | struct gs_port *port; |
726 | int status; | 726 | int status; |
727 | 727 | ||
728 | if (port_num < 0 || port_num >= n_ports) | ||
729 | return -ENXIO; | ||
730 | |||
731 | do { | 728 | do { |
732 | mutex_lock(&ports[port_num].lock); | 729 | mutex_lock(&ports[port_num].lock); |
733 | port = ports[port_num].port; | 730 | port = ports[port_num].port; |
diff --git a/net/irda/ircomm/ircomm_tty.c b/net/irda/ircomm/ircomm_tty.c index 828f88603d6c..6b9d5a0e42f9 100644 --- a/net/irda/ircomm/ircomm_tty.c +++ b/net/irda/ircomm/ircomm_tty.c | |||
@@ -365,16 +365,12 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self, | |||
365 | static int ircomm_tty_open(struct tty_struct *tty, struct file *filp) | 365 | static int ircomm_tty_open(struct tty_struct *tty, struct file *filp) |
366 | { | 366 | { |
367 | struct ircomm_tty_cb *self; | 367 | struct ircomm_tty_cb *self; |
368 | unsigned int line; | 368 | unsigned int line = tty->index; |
369 | unsigned long flags; | 369 | unsigned long flags; |
370 | int ret; | 370 | int ret; |
371 | 371 | ||
372 | IRDA_DEBUG(2, "%s()\n", __func__ ); | 372 | IRDA_DEBUG(2, "%s()\n", __func__ ); |
373 | 373 | ||
374 | line = tty->index; | ||
375 | if (line >= IRCOMM_TTY_PORTS) | ||
376 | return -ENODEV; | ||
377 | |||
378 | /* Check if instance already exists */ | 374 | /* Check if instance already exists */ |
379 | self = hashbin_lock_find(ircomm_tty, line, NULL); | 375 | self = hashbin_lock_find(ircomm_tty, line, NULL); |
380 | if (!self) { | 376 | if (!self) { |