Skip to content

Commit

Permalink
tty: fix up gigaset a bit
Browse files Browse the repository at this point in the history
Stephen's fixes reminded me that gigaset is still rather broken so fix it up
a bit

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 53e8631 commit ea1afd2
Showing 1 changed file with 12 additions and 15 deletions.
27 changes: 12 additions & 15 deletions drivers/isdn/gigaset/ser-gigaset.c
Original file line number Diff line number Diff line change
Expand Up @@ -571,6 +571,7 @@ gigaset_tty_close(struct tty_struct *tty)
}

/* prevent other callers from entering ldisc methods */
/* FIXME: should use the tty state flags */
tty->disc_data = NULL;

if (!cs->hw.ser)
Expand Down Expand Up @@ -642,10 +643,11 @@ gigaset_tty_ioctl(struct tty_struct *tty, struct file *file,
return -ENXIO;

switch (cmd) {
case TCGETS:
case TCGETA:
/* pass through to underlying serial device */
rc = n_tty_ioctl_helper(tty, file, cmd, arg);

case FIONREAD:
/* unused, always return zero */
val = 0;
rc = put_user(val, p);
break;

case TCFLSH:
Expand All @@ -659,27 +661,22 @@ gigaset_tty_ioctl(struct tty_struct *tty, struct file *file,
flush_send_queue(cs);
break;
}
/* flush the serial port's buffer */
rc = n_tty_ioctl_helper(tty, file, cmd, arg);
break;

case FIONREAD:
/* unused, always return zero */
val = 0;
rc = put_user(val, p);
break;
/* Pass through */

default:
rc = -ENOIOCTLCMD;
/* pass through to underlying serial device */
rc = n_tty_ioctl_helper(tty, file, cmd, arg);
break;
}

cs_put(cs);
return rc;
}

/*
* Poll on the tty.
* Unused, always return zero.
*
* FIXME: should probably return an exception - especially on hangup
*/
static unsigned int
gigaset_tty_poll(struct tty_struct *tty, struct file *file, poll_table *wait)
Expand Down

0 comments on commit ea1afd2

Please sign in to comment.