Skip to content

Commit

Permalink
tty: Remove lots of NULL checks
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Alan Cox authored and Linus Torvalds committed Oct 13, 2008
1 parent ea1afd2 commit 51383f6
Show file tree
Hide file tree
Showing 6 changed files with 1 addition and 79 deletions.
6 changes: 0 additions & 6 deletions drivers/char/amiserial.c
Original file line number Diff line number Diff line change
Expand Up @@ -837,9 +837,6 @@ static int rs_put_char(struct tty_struct *tty, unsigned char ch)
struct async_struct *info;
unsigned long flags;

if (!tty)
return 0;

info = tty->driver_data;

if (serial_paranoia_check(info, tty->name, "rs_put_char"))
Expand Down Expand Up @@ -892,9 +889,6 @@ static int rs_write(struct tty_struct * tty, const unsigned char *buf, int count
struct async_struct *info;
unsigned long flags;

if (!tty)
return 0;

info = tty->driver_data;

if (serial_paranoia_check(info, tty->name, "rs_write"))
Expand Down
21 changes: 0 additions & 21 deletions drivers/char/generic_serial.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,6 @@ int gs_put_char(struct tty_struct * tty, unsigned char ch)

func_enter ();

if (!tty) return 0;

port = tty->driver_data;

if (!port) return 0;
Expand Down Expand Up @@ -97,8 +95,6 @@ int gs_write(struct tty_struct * tty,

func_enter ();

if (!tty) return 0;

port = tty->driver_data;

if (!port) return 0;
Expand Down Expand Up @@ -185,7 +181,6 @@ static int gs_real_chars_in_buffer(struct tty_struct *tty)
struct gs_port *port;
func_enter ();

if (!tty) return 0;
port = tty->driver_data;

if (!port->rd) return 0;
Expand Down Expand Up @@ -274,8 +269,6 @@ void gs_flush_buffer(struct tty_struct *tty)

func_enter ();

if (!tty) return;

port = tty->driver_data;

if (!port) return;
Expand All @@ -296,8 +289,6 @@ void gs_flush_chars(struct tty_struct * tty)

func_enter ();

if (!tty) return;

port = tty->driver_data;

if (!port) return;
Expand All @@ -321,8 +312,6 @@ void gs_stop(struct tty_struct * tty)

func_enter ();

if (!tty) return;

port = tty->driver_data;

if (!port) return;
Expand All @@ -341,8 +330,6 @@ void gs_start(struct tty_struct * tty)
{
struct gs_port *port;

if (!tty) return;

port = tty->driver_data;

if (!port) return;
Expand Down Expand Up @@ -393,8 +380,6 @@ void gs_hangup(struct tty_struct *tty)

func_enter ();

if (!tty) return;

port = tty->driver_data;
tty = port->port.tty;
if (!tty)
Expand Down Expand Up @@ -426,8 +411,6 @@ int gs_block_til_ready(void *port_, struct file * filp)

tty = port->port.tty;

if (!tty) return 0;

gs_dprintk (GS_DEBUG_BTR, "Entering gs_block_till_ready.\n");
/*
* If the device is in the middle of being closed, then block
Expand Down Expand Up @@ -523,8 +506,6 @@ void gs_close(struct tty_struct * tty, struct file * filp)

func_enter ();

if (!tty) return;

port = (struct gs_port *) tty->driver_data;

if (!port) return;
Expand Down Expand Up @@ -621,8 +602,6 @@ void gs_set_termios (struct tty_struct * tty,

func_enter();

if (!tty) return;

port = tty->driver_data;

if (!port) return;
Expand Down
6 changes: 0 additions & 6 deletions drivers/char/istallion.c
Original file line number Diff line number Diff line change
Expand Up @@ -1375,8 +1375,6 @@ static void stli_flushchars(struct tty_struct *tty)
stli_txcookrealsize = 0;
stli_txcooktty = NULL;

if (tty == NULL)
return;
if (cooktty == NULL)
return;
if (tty != cooktty)
Expand Down Expand Up @@ -1732,8 +1730,6 @@ static void stli_settermios(struct tty_struct *tty, struct ktermios *old)
struct ktermios *tiosp;
asyport_t aport;

if (tty == NULL)
return;
portp = tty->driver_data;
if (portp == NULL)
return;
Expand Down Expand Up @@ -1938,8 +1934,6 @@ static void stli_waituntilsent(struct tty_struct *tty, int timeout)
struct stliport *portp;
unsigned long tend;

if (tty == NULL)
return;
portp = tty->driver_data;
if (portp == NULL)
return;
Expand Down
5 changes: 0 additions & 5 deletions drivers/char/mxser.c
Original file line number Diff line number Diff line change
Expand Up @@ -616,9 +616,6 @@ static int mxser_set_baud(struct tty_struct *tty, long newspd)
int quot = 0, baud;
unsigned char cval;

if (!tty->termios)
return -1;

if (!info->ioaddr)
return -1;

Expand Down Expand Up @@ -688,8 +685,6 @@ static int mxser_change_speed(struct tty_struct *tty,
int ret = 0;
unsigned char status;

if (!tty->termios)
return ret;
cflag = tty->termios->c_cflag;
if (!info->ioaddr)
return ret;
Expand Down
8 changes: 1 addition & 7 deletions drivers/char/n_r3964.c
Original file line number Diff line number Diff line change
Expand Up @@ -372,14 +372,8 @@ static void remove_from_rx_queue(struct r3964_info *pInfo,
static void put_char(struct r3964_info *pInfo, unsigned char ch)
{
struct tty_struct *tty = pInfo->tty;

if (tty == NULL)
return;

/* FIXME: put_char should not be called from an IRQ */
if (tty->ops->put_char) {
tty->ops->put_char(tty, ch);
}
tty_put_char(tty, ch);
pInfo->bcc ^= ch;
}

Expand Down
34 changes: 0 additions & 34 deletions drivers/char/stallion.c
Original file line number Diff line number Diff line change
Expand Up @@ -849,8 +849,6 @@ static void stl_flushbuffer(struct tty_struct *tty)

pr_debug("stl_flushbuffer(tty=%p)\n", tty);

if (tty == NULL)
return;
portp = tty->driver_data;
if (portp == NULL)
return;
Expand All @@ -868,8 +866,6 @@ static void stl_waituntilsent(struct tty_struct *tty, int timeout)

pr_debug("stl_waituntilsent(tty=%p,timeout=%d)\n", tty, timeout);

if (tty == NULL)
return;
portp = tty->driver_data;
if (portp == NULL)
return;
Expand Down Expand Up @@ -1036,8 +1032,6 @@ static int stl_putchar(struct tty_struct *tty, unsigned char ch)

pr_debug("stl_putchar(tty=%p,ch=%x)\n", tty, ch);

if (tty == NULL)
return -EINVAL;
portp = tty->driver_data;
if (portp == NULL)
return -EINVAL;
Expand Down Expand Up @@ -1073,8 +1067,6 @@ static void stl_flushchars(struct tty_struct *tty)

pr_debug("stl_flushchars(tty=%p)\n", tty);

if (tty == NULL)
return;
portp = tty->driver_data;
if (portp == NULL)
return;
Expand All @@ -1093,8 +1085,6 @@ static int stl_writeroom(struct tty_struct *tty)

pr_debug("stl_writeroom(tty=%p)\n", tty);

if (tty == NULL)
return 0;
portp = tty->driver_data;
if (portp == NULL)
return 0;
Expand Down Expand Up @@ -1125,8 +1115,6 @@ static int stl_charsinbuffer(struct tty_struct *tty)

pr_debug("stl_charsinbuffer(tty=%p)\n", tty);

if (tty == NULL)
return 0;
portp = tty->driver_data;
if (portp == NULL)
return 0;
Expand Down Expand Up @@ -1219,8 +1207,6 @@ static int stl_tiocmget(struct tty_struct *tty, struct file *file)
{
struct stlport *portp;

if (tty == NULL)
return -ENODEV;
portp = tty->driver_data;
if (portp == NULL)
return -ENODEV;
Expand All @@ -1236,8 +1222,6 @@ static int stl_tiocmset(struct tty_struct *tty, struct file *file,
struct stlport *portp;
int rts = -1, dtr = -1;

if (tty == NULL)
return -ENODEV;
portp = tty->driver_data;
if (portp == NULL)
return -ENODEV;
Expand Down Expand Up @@ -1266,8 +1250,6 @@ static int stl_ioctl(struct tty_struct *tty, struct file *file, unsigned int cmd
pr_debug("stl_ioctl(tty=%p,file=%p,cmd=%x,arg=%lx)\n", tty, file, cmd,
arg);

if (tty == NULL)
return -ENODEV;
portp = tty->driver_data;
if (portp == NULL)
return -ENODEV;
Expand Down Expand Up @@ -1321,8 +1303,6 @@ static void stl_start(struct tty_struct *tty)

pr_debug("stl_start(tty=%p)\n", tty);

if (tty == NULL)
return;
portp = tty->driver_data;
if (portp == NULL)
return;
Expand All @@ -1338,8 +1318,6 @@ static void stl_settermios(struct tty_struct *tty, struct ktermios *old)

pr_debug("stl_settermios(tty=%p,old=%p)\n", tty, old);

if (tty == NULL)
return;
portp = tty->driver_data;
if (portp == NULL)
return;
Expand Down Expand Up @@ -1373,8 +1351,6 @@ static void stl_throttle(struct tty_struct *tty)

pr_debug("stl_throttle(tty=%p)\n", tty);

if (tty == NULL)
return;
portp = tty->driver_data;
if (portp == NULL)
return;
Expand All @@ -1393,8 +1369,6 @@ static void stl_unthrottle(struct tty_struct *tty)

pr_debug("stl_unthrottle(tty=%p)\n", tty);

if (tty == NULL)
return;
portp = tty->driver_data;
if (portp == NULL)
return;
Expand All @@ -1414,8 +1388,6 @@ static void stl_stop(struct tty_struct *tty)

pr_debug("stl_stop(tty=%p)\n", tty);

if (tty == NULL)
return;
portp = tty->driver_data;
if (portp == NULL)
return;
Expand All @@ -1436,8 +1408,6 @@ static void stl_hangup(struct tty_struct *tty)

pr_debug("stl_hangup(tty=%p)\n", tty);

if (tty == NULL)
return;
portp = tty->driver_data;
if (portp == NULL)
return;
Expand Down Expand Up @@ -1470,8 +1440,6 @@ static int stl_breakctl(struct tty_struct *tty, int state)

pr_debug("stl_breakctl(tty=%p,state=%d)\n", tty, state);

if (tty == NULL)
return -EINVAL;
portp = tty->driver_data;
if (portp == NULL)
return -EINVAL;
Expand All @@ -1488,8 +1456,6 @@ static void stl_sendxchar(struct tty_struct *tty, char ch)

pr_debug("stl_sendxchar(tty=%p,ch=%x)\n", tty, ch);

if (tty == NULL)
return;
portp = tty->driver_data;
if (portp == NULL)
return;
Expand Down

0 comments on commit 51383f6

Please sign in to comment.