diff options
Diffstat (limited to 'drivers/char/hvsi.c')
| -rw-r--r-- | drivers/char/hvsi.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/char/hvsi.c b/drivers/char/hvsi.c index 41db8060e8f7..017f755632a3 100644 --- a/drivers/char/hvsi.c +++ b/drivers/char/hvsi.c | |||
| @@ -311,7 +311,8 @@ static void hvsi_recv_control(struct hvsi_struct *hp, uint8_t *packet, | |||
| 311 | /* CD went away; no more connection */ | 311 | /* CD went away; no more connection */ |
| 312 | pr_debug("hvsi%i: CD dropped\n", hp->index); | 312 | pr_debug("hvsi%i: CD dropped\n", hp->index); |
| 313 | hp->mctrl &= TIOCM_CD; | 313 | hp->mctrl &= TIOCM_CD; |
| 314 | if (!(hp->tty->flags & CLOCAL)) | 314 | /* If userland hasn't done an open(2) yet, hp->tty is NULL. */ |
| 315 | if (hp->tty && !(hp->tty->flags & CLOCAL)) | ||
| 315 | *to_hangup = hp->tty; | 316 | *to_hangup = hp->tty; |
| 316 | } | 317 | } |
| 317 | break; | 318 | break; |
| @@ -986,10 +987,7 @@ static void hvsi_write_worker(void *arg) | |||
| 986 | start_j = 0; | 987 | start_j = 0; |
| 987 | #endif /* DEBUG */ | 988 | #endif /* DEBUG */ |
| 988 | wake_up_all(&hp->emptyq); | 989 | wake_up_all(&hp->emptyq); |
| 989 | if (test_bit(TTY_DO_WRITE_WAKEUP, &hp->tty->flags) | 990 | tty_wakeup(hp->tty); |
| 990 | && hp->tty->ldisc.write_wakeup) | ||
| 991 | hp->tty->ldisc.write_wakeup(hp->tty); | ||
| 992 | wake_up_interruptible(&hp->tty->write_wait); | ||
| 993 | } | 991 | } |
| 994 | 992 | ||
| 995 | out: | 993 | out: |
