diff -puN drivers/char/vt.c~a drivers/char/vt.c --- 25/drivers/char/vt.c~a 2004-03-24 09:49:10.285591688 -0800 +++ 25-akpm/drivers/char/vt.c 2004-03-24 09:50:54.355770616 -0800 @@ -2471,10 +2471,13 @@ static int con_open(struct tty_struct *t tty->winsize.ws_row = video_num_lines; tty->winsize.ws_col = video_num_columns; } + release_console_sem(); vcs_make_devfs(tty); + goto out; } } release_console_sem(); +out: return ret; } @@ -2484,11 +2487,13 @@ static void con_close(struct tty_struct if (tty && tty->count == 1) { struct vt_struct *vt; - vcs_remove_devfs(tty); vt = tty->driver_data; if (vt) vc_cons[vt->vc_num].d->vc_tty = NULL; tty->driver_data = 0; + release_console_sem(); + vcs_remove_devfs(tty); + return; } release_console_sem(); } _