diff options
| -rw-r--r-- | drivers/tty/vt/vt.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c index 76407eca9ab..4f6ae05eb4f 100644 --- a/drivers/tty/vt/vt.c +++ b/drivers/tty/vt/vt.c | |||
| @@ -3545,7 +3545,7 @@ int register_con_driver(const struct consw *csw, int first, int last) | |||
| 3545 | 3545 | ||
| 3546 | /* already registered */ | 3546 | /* already registered */ |
| 3547 | if (con_driver->con == csw) | 3547 | if (con_driver->con == csw) |
| 3548 | retval = -EINVAL; | 3548 | retval = -EBUSY; |
| 3549 | } | 3549 | } |
| 3550 | 3550 | ||
| 3551 | if (retval) | 3551 | if (retval) |
| @@ -3656,7 +3656,12 @@ int take_over_console(const struct consw *csw, int first, int last, int deflt) | |||
| 3656 | int err; | 3656 | int err; |
| 3657 | 3657 | ||
| 3658 | err = register_con_driver(csw, first, last); | 3658 | err = register_con_driver(csw, first, last); |
| 3659 | 3659 | /* if we get an busy error we still want to bind the console driver | |
| 3660 | * and return success, as we may have unbound the console driver | ||
| 3661 | * but not unregistered it. | ||
| 3662 | */ | ||
| 3663 | if (err == -EBUSY) | ||
| 3664 | err = 0; | ||
| 3660 | if (!err) | 3665 | if (!err) |
| 3661 | bind_con_driver(csw, first, last, deflt); | 3666 | bind_con_driver(csw, first, last, deflt); |
| 3662 | 3667 | ||
