aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char
diff options
context:
space:
mode:
authorAlan Cox <alan@redhat.com>2008-10-13 05:44:57 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-10-13 12:51:44 -0400
commit51383f69ec56fe3f425d5255fb43e18c445e061c (patch)
treef9d9e280892702c3a47ffa807c0937ea9c80e315 /drivers/char
parentea1afd256258f04a290aaa7fd5c2d4deb2e79e26 (diff)
tty: Remove lots of NULL checks
Many tty drivers contain 'can't happen' checks against NULL pointers passed in by the tty layer. These have never been possible to occur. Even more importantly if they ever do occur we want to know as it would be a serious bug. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/char')
-rw-r--r--drivers/char/amiserial.c6
-rw-r--r--drivers/char/generic_serial.c21
-rw-r--r--drivers/char/istallion.c6
-rw-r--r--drivers/char/mxser.c5
-rw-r--r--drivers/char/n_r3964.c8
-rw-r--r--drivers/char/stallion.c34
6 files changed, 1 insertions, 79 deletions
diff --git a/drivers/char/amiserial.c b/drivers/char/amiserial.c
index 6e763e3f5a81..98821f97583c 100644
--- a/drivers/char/amiserial.c
+++ b/drivers/char/amiserial.c
@@ -837,9 +837,6 @@ static int rs_put_char(struct tty_struct *tty, unsigned char ch)
837 struct async_struct *info; 837 struct async_struct *info;
838 unsigned long flags; 838 unsigned long flags;
839 839
840 if (!tty)
841 return 0;
842
843 info = tty->driver_data; 840 info = tty->driver_data;
844 841
845 if (serial_paranoia_check(info, tty->name, "rs_put_char")) 842 if (serial_paranoia_check(info, tty->name, "rs_put_char"))
@@ -892,9 +889,6 @@ static int rs_write(struct tty_struct * tty, const unsigned char *buf, int count
892 struct async_struct *info; 889 struct async_struct *info;
893 unsigned long flags; 890 unsigned long flags;
894 891
895 if (!tty)
896 return 0;
897
898 info = tty->driver_data; 892 info = tty->driver_data;
899 893
900 if (serial_paranoia_check(info, tty->name, "rs_write")) 894 if (serial_paranoia_check(info, tty->name, "rs_write"))
diff --git a/drivers/char/generic_serial.c b/drivers/char/generic_serial.c
index 19d3afb0e50c..c6090f84a2e4 100644
--- a/drivers/char/generic_serial.c
+++ b/drivers/char/generic_serial.c
@@ -54,8 +54,6 @@ int gs_put_char(struct tty_struct * tty, unsigned char ch)
54 54
55 func_enter (); 55 func_enter ();
56 56
57 if (!tty) return 0;
58
59 port = tty->driver_data; 57 port = tty->driver_data;
60 58
61 if (!port) return 0; 59 if (!port) return 0;
@@ -97,8 +95,6 @@ int gs_write(struct tty_struct * tty,
97 95
98 func_enter (); 96 func_enter ();
99 97
100 if (!tty) return 0;
101
102 port = tty->driver_data; 98 port = tty->driver_data;
103 99
104 if (!port) return 0; 100 if (!port) return 0;
@@ -185,7 +181,6 @@ static int gs_real_chars_in_buffer(struct tty_struct *tty)
185 struct gs_port *port; 181 struct gs_port *port;
186 func_enter (); 182 func_enter ();
187 183
188 if (!tty) return 0;
189 port = tty->driver_data; 184 port = tty->driver_data;
190 185
191 if (!port->rd) return 0; 186 if (!port->rd) return 0;
@@ -274,8 +269,6 @@ void gs_flush_buffer(struct tty_struct *tty)
274 269
275 func_enter (); 270 func_enter ();
276 271
277 if (!tty) return;
278
279 port = tty->driver_data; 272 port = tty->driver_data;
280 273
281 if (!port) return; 274 if (!port) return;
@@ -296,8 +289,6 @@ void gs_flush_chars(struct tty_struct * tty)
296 289
297 func_enter (); 290 func_enter ();
298 291
299 if (!tty) return;
300
301 port = tty->driver_data; 292 port = tty->driver_data;
302 293
303 if (!port) return; 294 if (!port) return;
@@ -321,8 +312,6 @@ void gs_stop(struct tty_struct * tty)
321 312
322 func_enter (); 313 func_enter ();
323 314
324 if (!tty) return;
325
326 port = tty->driver_data; 315 port = tty->driver_data;
327 316
328 if (!port) return; 317 if (!port) return;
@@ -341,8 +330,6 @@ void gs_start(struct tty_struct * tty)
341{ 330{
342 struct gs_port *port; 331 struct gs_port *port;
343 332
344 if (!tty) return;
345
346 port = tty->driver_data; 333 port = tty->driver_data;
347 334
348 if (!port) return; 335 if (!port) return;
@@ -393,8 +380,6 @@ void gs_hangup(struct tty_struct *tty)
393 380
394 func_enter (); 381 func_enter ();
395 382
396 if (!tty) return;
397
398 port = tty->driver_data; 383 port = tty->driver_data;
399 tty = port->port.tty; 384 tty = port->port.tty;
400 if (!tty) 385 if (!tty)
@@ -426,8 +411,6 @@ int gs_block_til_ready(void *port_, struct file * filp)
426 411
427 tty = port->port.tty; 412 tty = port->port.tty;
428 413
429 if (!tty) return 0;
430
431 gs_dprintk (GS_DEBUG_BTR, "Entering gs_block_till_ready.\n"); 414 gs_dprintk (GS_DEBUG_BTR, "Entering gs_block_till_ready.\n");
432 /* 415 /*
433 * If the device is in the middle of being closed, then block 416 * If the device is in the middle of being closed, then block
@@ -523,8 +506,6 @@ void gs_close(struct tty_struct * tty, struct file * filp)
523 506
524 func_enter (); 507 func_enter ();
525 508
526 if (!tty) return;
527
528 port = (struct gs_port *) tty->driver_data; 509 port = (struct gs_port *) tty->driver_data;
529 510
530 if (!port) return; 511 if (!port) return;
@@ -621,8 +602,6 @@ void gs_set_termios (struct tty_struct * tty,
621 602
622 func_enter(); 603 func_enter();
623 604
624 if (!tty) return;
625
626 port = tty->driver_data; 605 port = tty->driver_data;
627 606
628 if (!port) return; 607 if (!port) return;
diff --git a/drivers/char/istallion.c b/drivers/char/istallion.c
index 96ee1121acef..505d7a1f6b8c 100644
--- a/drivers/char/istallion.c
+++ b/drivers/char/istallion.c
@@ -1375,8 +1375,6 @@ static void stli_flushchars(struct tty_struct *tty)
1375 stli_txcookrealsize = 0; 1375 stli_txcookrealsize = 0;
1376 stli_txcooktty = NULL; 1376 stli_txcooktty = NULL;
1377 1377
1378 if (tty == NULL)
1379 return;
1380 if (cooktty == NULL) 1378 if (cooktty == NULL)
1381 return; 1379 return;
1382 if (tty != cooktty) 1380 if (tty != cooktty)
@@ -1732,8 +1730,6 @@ static void stli_settermios(struct tty_struct *tty, struct ktermios *old)
1732 struct ktermios *tiosp; 1730 struct ktermios *tiosp;
1733 asyport_t aport; 1731 asyport_t aport;
1734 1732
1735 if (tty == NULL)
1736 return;
1737 portp = tty->driver_data; 1733 portp = tty->driver_data;
1738 if (portp == NULL) 1734 if (portp == NULL)
1739 return; 1735 return;
@@ -1938,8 +1934,6 @@ static void stli_waituntilsent(struct tty_struct *tty, int timeout)
1938 struct stliport *portp; 1934 struct stliport *portp;
1939 unsigned long tend; 1935 unsigned long tend;
1940 1936
1941 if (tty == NULL)
1942 return;
1943 portp = tty->driver_data; 1937 portp = tty->driver_data;
1944 if (portp == NULL) 1938 if (portp == NULL)
1945 return; 1939 return;
diff --git a/drivers/char/mxser.c b/drivers/char/mxser.c
index 308cb6014002..8beef50f95a0 100644
--- a/drivers/char/mxser.c
+++ b/drivers/char/mxser.c
@@ -616,9 +616,6 @@ static int mxser_set_baud(struct tty_struct *tty, long newspd)
616 int quot = 0, baud; 616 int quot = 0, baud;
617 unsigned char cval; 617 unsigned char cval;
618 618
619 if (!tty->termios)
620 return -1;
621
622 if (!info->ioaddr) 619 if (!info->ioaddr)
623 return -1; 620 return -1;
624 621
@@ -688,8 +685,6 @@ static int mxser_change_speed(struct tty_struct *tty,
688 int ret = 0; 685 int ret = 0;
689 unsigned char status; 686 unsigned char status;
690 687
691 if (!tty->termios)
692 return ret;
693 cflag = tty->termios->c_cflag; 688 cflag = tty->termios->c_cflag;
694 if (!info->ioaddr) 689 if (!info->ioaddr)
695 return ret; 690 return ret;
diff --git a/drivers/char/n_r3964.c b/drivers/char/n_r3964.c
index ae377aa473ba..4a8215a89ad3 100644
--- a/drivers/char/n_r3964.c
+++ b/drivers/char/n_r3964.c
@@ -372,14 +372,8 @@ static void remove_from_rx_queue(struct r3964_info *pInfo,
372static void put_char(struct r3964_info *pInfo, unsigned char ch) 372static void put_char(struct r3964_info *pInfo, unsigned char ch)
373{ 373{
374 struct tty_struct *tty = pInfo->tty; 374 struct tty_struct *tty = pInfo->tty;
375
376 if (tty == NULL)
377 return;
378
379 /* FIXME: put_char should not be called from an IRQ */ 375 /* FIXME: put_char should not be called from an IRQ */
380 if (tty->ops->put_char) { 376 tty_put_char(tty, ch);
381 tty->ops->put_char(tty, ch);
382 }
383 pInfo->bcc ^= ch; 377 pInfo->bcc ^= ch;
384} 378}
385 379
diff --git a/drivers/char/stallion.c b/drivers/char/stallion.c
index 81b3234127db..8b8f07a7f505 100644
--- a/drivers/char/stallion.c
+++ b/drivers/char/stallion.c
@@ -849,8 +849,6 @@ static void stl_flushbuffer(struct tty_struct *tty)
849 849
850 pr_debug("stl_flushbuffer(tty=%p)\n", tty); 850 pr_debug("stl_flushbuffer(tty=%p)\n", tty);
851 851
852 if (tty == NULL)
853 return;
854 portp = tty->driver_data; 852 portp = tty->driver_data;
855 if (portp == NULL) 853 if (portp == NULL)
856 return; 854 return;
@@ -868,8 +866,6 @@ static void stl_waituntilsent(struct tty_struct *tty, int timeout)
868 866
869 pr_debug("stl_waituntilsent(tty=%p,timeout=%d)\n", tty, timeout); 867 pr_debug("stl_waituntilsent(tty=%p,timeout=%d)\n", tty, timeout);
870 868
871 if (tty == NULL)
872 return;
873 portp = tty->driver_data; 869 portp = tty->driver_data;
874 if (portp == NULL) 870 if (portp == NULL)
875 return; 871 return;
@@ -1036,8 +1032,6 @@ static int stl_putchar(struct tty_struct *tty, unsigned char ch)
1036 1032
1037 pr_debug("stl_putchar(tty=%p,ch=%x)\n", tty, ch); 1033 pr_debug("stl_putchar(tty=%p,ch=%x)\n", tty, ch);
1038 1034
1039 if (tty == NULL)
1040 return -EINVAL;
1041 portp = tty->driver_data; 1035 portp = tty->driver_data;
1042 if (portp == NULL) 1036 if (portp == NULL)
1043 return -EINVAL; 1037 return -EINVAL;
@@ -1073,8 +1067,6 @@ static void stl_flushchars(struct tty_struct *tty)
1073 1067
1074 pr_debug("stl_flushchars(tty=%p)\n", tty); 1068 pr_debug("stl_flushchars(tty=%p)\n", tty);
1075 1069
1076 if (tty == NULL)
1077 return;
1078 portp = tty->driver_data; 1070 portp = tty->driver_data;
1079 if (portp == NULL) 1071 if (portp == NULL)
1080 return; 1072 return;
@@ -1093,8 +1085,6 @@ static int stl_writeroom(struct tty_struct *tty)
1093 1085
1094 pr_debug("stl_writeroom(tty=%p)\n", tty); 1086 pr_debug("stl_writeroom(tty=%p)\n", tty);
1095 1087
1096 if (tty == NULL)
1097 return 0;
1098 portp = tty->driver_data; 1088 portp = tty->driver_data;
1099 if (portp == NULL) 1089 if (portp == NULL)
1100 return 0; 1090 return 0;
@@ -1125,8 +1115,6 @@ static int stl_charsinbuffer(struct tty_struct *tty)
1125 1115
1126 pr_debug("stl_charsinbuffer(tty=%p)\n", tty); 1116 pr_debug("stl_charsinbuffer(tty=%p)\n", tty);
1127 1117
1128 if (tty == NULL)
1129 return 0;
1130 portp = tty->driver_data; 1118 portp = tty->driver_data;
1131 if (portp == NULL) 1119 if (portp == NULL)
1132 return 0; 1120 return 0;
@@ -1219,8 +1207,6 @@ static int stl_tiocmget(struct tty_struct *tty, struct file *file)
1219{ 1207{
1220 struct stlport *portp; 1208 struct stlport *portp;
1221 1209
1222 if (tty == NULL)
1223 return -ENODEV;
1224 portp = tty->driver_data; 1210 portp = tty->driver_data;
1225 if (portp == NULL) 1211 if (portp == NULL)
1226 return -ENODEV; 1212 return -ENODEV;
@@ -1236,8 +1222,6 @@ static int stl_tiocmset(struct tty_struct *tty, struct file *file,
1236 struct stlport *portp; 1222 struct stlport *portp;
1237 int rts = -1, dtr = -1; 1223 int rts = -1, dtr = -1;
1238 1224
1239 if (tty == NULL)
1240 return -ENODEV;
1241 portp = tty->driver_data; 1225 portp = tty->driver_data;
1242 if (portp == NULL) 1226 if (portp == NULL)
1243 return -ENODEV; 1227 return -ENODEV;
@@ -1266,8 +1250,6 @@ static int stl_ioctl(struct tty_struct *tty, struct file *file, unsigned int cmd
1266 pr_debug("stl_ioctl(tty=%p,file=%p,cmd=%x,arg=%lx)\n", tty, file, cmd, 1250 pr_debug("stl_ioctl(tty=%p,file=%p,cmd=%x,arg=%lx)\n", tty, file, cmd,
1267 arg); 1251 arg);
1268 1252
1269 if (tty == NULL)
1270 return -ENODEV;
1271 portp = tty->driver_data; 1253 portp = tty->driver_data;
1272 if (portp == NULL) 1254 if (portp == NULL)
1273 return -ENODEV; 1255 return -ENODEV;
@@ -1321,8 +1303,6 @@ static void stl_start(struct tty_struct *tty)
1321 1303
1322 pr_debug("stl_start(tty=%p)\n", tty); 1304 pr_debug("stl_start(tty=%p)\n", tty);
1323 1305
1324 if (tty == NULL)
1325 return;
1326 portp = tty->driver_data; 1306 portp = tty->driver_data;
1327 if (portp == NULL) 1307 if (portp == NULL)
1328 return; 1308 return;
@@ -1338,8 +1318,6 @@ static void stl_settermios(struct tty_struct *tty, struct ktermios *old)
1338 1318
1339 pr_debug("stl_settermios(tty=%p,old=%p)\n", tty, old); 1319 pr_debug("stl_settermios(tty=%p,old=%p)\n", tty, old);
1340 1320
1341 if (tty == NULL)
1342 return;
1343 portp = tty->driver_data; 1321 portp = tty->driver_data;
1344 if (portp == NULL) 1322 if (portp == NULL)
1345 return; 1323 return;
@@ -1373,8 +1351,6 @@ static void stl_throttle(struct tty_struct *tty)
1373 1351
1374 pr_debug("stl_throttle(tty=%p)\n", tty); 1352 pr_debug("stl_throttle(tty=%p)\n", tty);
1375 1353
1376 if (tty == NULL)
1377 return;
1378 portp = tty->driver_data; 1354 portp = tty->driver_data;
1379 if (portp == NULL) 1355 if (portp == NULL)
1380 return; 1356 return;
@@ -1393,8 +1369,6 @@ static void stl_unthrottle(struct tty_struct *tty)
1393 1369
1394 pr_debug("stl_unthrottle(tty=%p)\n", tty); 1370 pr_debug("stl_unthrottle(tty=%p)\n", tty);
1395 1371
1396 if (tty == NULL)
1397 return;
1398 portp = tty->driver_data; 1372 portp = tty->driver_data;
1399 if (portp == NULL) 1373 if (portp == NULL)
1400 return; 1374 return;
@@ -1414,8 +1388,6 @@ static void stl_stop(struct tty_struct *tty)
1414 1388
1415 pr_debug("stl_stop(tty=%p)\n", tty); 1389 pr_debug("stl_stop(tty=%p)\n", tty);
1416 1390
1417 if (tty == NULL)
1418 return;
1419 portp = tty->driver_data; 1391 portp = tty->driver_data;
1420 if (portp == NULL) 1392 if (portp == NULL)
1421 return; 1393 return;
@@ -1436,8 +1408,6 @@ static void stl_hangup(struct tty_struct *tty)
1436 1408
1437 pr_debug("stl_hangup(tty=%p)\n", tty); 1409 pr_debug("stl_hangup(tty=%p)\n", tty);
1438 1410
1439 if (tty == NULL)
1440 return;
1441 portp = tty->driver_data; 1411 portp = tty->driver_data;
1442 if (portp == NULL) 1412 if (portp == NULL)
1443 return; 1413 return;
@@ -1470,8 +1440,6 @@ static int stl_breakctl(struct tty_struct *tty, int state)
1470 1440
1471 pr_debug("stl_breakctl(tty=%p,state=%d)\n", tty, state); 1441 pr_debug("stl_breakctl(tty=%p,state=%d)\n", tty, state);
1472 1442
1473 if (tty == NULL)
1474 return -EINVAL;
1475 portp = tty->driver_data; 1443 portp = tty->driver_data;
1476 if (portp == NULL) 1444 if (portp == NULL)
1477 return -EINVAL; 1445 return -EINVAL;
@@ -1488,8 +1456,6 @@ static void stl_sendxchar(struct tty_struct *tty, char ch)
1488 1456
1489 pr_debug("stl_sendxchar(tty=%p,ch=%x)\n", tty, ch); 1457 pr_debug("stl_sendxchar(tty=%p,ch=%x)\n", tty, ch);
1490 1458
1491 if (tty == NULL)
1492 return;
1493 portp = tty->driver_data; 1459 portp = tty->driver_data;
1494 if (portp == NULL) 1460 if (portp == NULL)
1495 return; 1461 return;