diff options
-rw-r--r-- | arch/um/drivers/line.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/um/drivers/line.c b/arch/um/drivers/line.c index 8035145f043b..62087028a9ce 100644 --- a/arch/um/drivers/line.c +++ b/arch/um/drivers/line.c | |||
@@ -632,6 +632,7 @@ static irqreturn_t winch_interrupt(int irq, void *data) | |||
632 | int fd = winch->fd; | 632 | int fd = winch->fd; |
633 | int err; | 633 | int err; |
634 | char c; | 634 | char c; |
635 | struct pid *pgrp; | ||
635 | 636 | ||
636 | if (fd != -1) { | 637 | if (fd != -1) { |
637 | err = generic_read(fd, &c, NULL); | 638 | err = generic_read(fd, &c, NULL); |
@@ -657,7 +658,10 @@ static irqreturn_t winch_interrupt(int irq, void *data) | |||
657 | if (line != NULL) { | 658 | if (line != NULL) { |
658 | chan_window_size(line, &tty->winsize.ws_row, | 659 | chan_window_size(line, &tty->winsize.ws_row, |
659 | &tty->winsize.ws_col); | 660 | &tty->winsize.ws_col); |
660 | kill_pgrp(tty->pgrp, SIGWINCH, 1); | 661 | pgrp = tty_get_pgrp(tty); |
662 | if (pgrp) | ||
663 | kill_pgrp(pgrp, SIGWINCH, 1); | ||
664 | put_pid(pgrp); | ||
661 | } | 665 | } |
662 | tty_kref_put(tty); | 666 | tty_kref_put(tty); |
663 | } | 667 | } |