From a6ee60d16eb99bd470e0c3e6f82b87dd5a1341f3 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Wed, 14 May 2008 17:11:46 +0200 Subject: [PATCH] --- yaml --- r: 96790 b: refs/heads/master c: 487ad7efbf6b0ec338cdfc2a7b0fbeb53f17a94c h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/char/n_tty.c | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index b80abd3be3d6..448b247d0e19 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8568dae21e186fbb111bbe6583033a33fe26f83d +refs/heads/master: 487ad7efbf6b0ec338cdfc2a7b0fbeb53f17a94c diff --git a/trunk/drivers/char/n_tty.c b/trunk/drivers/char/n_tty.c index 19105ec203f7..8096389b0dc2 100644 --- a/trunk/drivers/char/n_tty.c +++ b/trunk/drivers/char/n_tty.c @@ -282,16 +282,20 @@ static int opost(unsigned char c, struct tty_struct *tty) if (O_ONLRET(tty)) tty->column = 0; if (O_ONLCR(tty)) { - if (space < 2) + if (space < 2) { + unlock_kernel(); return -1; + } tty_put_char(tty, '\r'); tty->column = 0; } tty->canon_column = tty->column; break; case '\r': - if (O_ONOCR(tty) && tty->column == 0) + if (O_ONOCR(tty) && tty->column == 0) { + unlock_kernel(); return 0; + } if (O_OCRNL(tty)) { c = '\n'; if (O_ONLRET(tty)) @@ -303,10 +307,13 @@ static int opost(unsigned char c, struct tty_struct *tty) case '\t': spaces = 8 - (tty->column & 7); if (O_TABDLY(tty) == XTABS) { - if (space < spaces) + if (space < spaces) { + unlock_kernel(); return -1; + } tty->column += spaces; tty->ops->write(tty, " ", spaces); + unlock_kernel(); return 0; } tty->column += spaces;