diff options
-rw-r--r-- | drivers/tty/tty_io.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c index c74a00ad7add..d3448a90f0f9 100644 --- a/drivers/tty/tty_io.c +++ b/drivers/tty/tty_io.c | |||
@@ -1271,12 +1271,13 @@ static void pty_line_name(struct tty_driver *driver, int index, char *p) | |||
1271 | * | 1271 | * |
1272 | * Locking: None | 1272 | * Locking: None |
1273 | */ | 1273 | */ |
1274 | static void tty_line_name(struct tty_driver *driver, int index, char *p) | 1274 | static ssize_t tty_line_name(struct tty_driver *driver, int index, char *p) |
1275 | { | 1275 | { |
1276 | if (driver->flags & TTY_DRIVER_UNNUMBERED_NODE) | 1276 | if (driver->flags & TTY_DRIVER_UNNUMBERED_NODE) |
1277 | strcpy(p, driver->name); | 1277 | return sprintf(p, "%s", driver->name); |
1278 | else | 1278 | else |
1279 | sprintf(p, "%s%d", driver->name, index + driver->name_base); | 1279 | return sprintf(p, "%s%d", driver->name, |
1280 | index + driver->name_base); | ||
1280 | } | 1281 | } |
1281 | 1282 | ||
1282 | /** | 1283 | /** |
@@ -3545,9 +3546,19 @@ static ssize_t show_cons_active(struct device *dev, | |||
3545 | if (i >= ARRAY_SIZE(cs)) | 3546 | if (i >= ARRAY_SIZE(cs)) |
3546 | break; | 3547 | break; |
3547 | } | 3548 | } |
3548 | while (i--) | 3549 | while (i--) { |
3549 | count += sprintf(buf + count, "%s%d%c", | 3550 | int index = cs[i]->index; |
3550 | cs[i]->name, cs[i]->index, i ? ' ':'\n'); | 3551 | struct tty_driver *drv = cs[i]->device(cs[i], &index); |
3552 | |||
3553 | /* don't resolve tty0 as some programs depend on it */ | ||
3554 | if (drv && (cs[i]->index > 0 || drv->major != TTY_MAJOR)) | ||
3555 | count += tty_line_name(drv, index, buf + count); | ||
3556 | else | ||
3557 | count += sprintf(buf + count, "%s%d", | ||
3558 | cs[i]->name, cs[i]->index); | ||
3559 | |||
3560 | count += sprintf(buf + count, "%c", i ? ' ':'\n'); | ||
3561 | } | ||
3551 | console_unlock(); | 3562 | console_unlock(); |
3552 | 3563 | ||
3553 | return count; | 3564 | return count; |