|
@@ -1271,12 +1271,13 @@ static void pty_line_name(struct tty_driver *driver, int index, char *p)
|
|
*
|
|
*
|
|
* Locking: None
|
|
* Locking: None
|
|
*/
|
|
*/
|
|
-static void tty_line_name(struct tty_driver *driver, int index, char *p)
|
|
|
|
|
|
+static ssize_t tty_line_name(struct tty_driver *driver, int index, char *p)
|
|
{
|
|
{
|
|
if (driver->flags & TTY_DRIVER_UNNUMBERED_NODE)
|
|
if (driver->flags & TTY_DRIVER_UNNUMBERED_NODE)
|
|
- strcpy(p, driver->name);
|
|
|
|
|
|
+ return sprintf(p, "%s", driver->name);
|
|
else
|
|
else
|
|
- sprintf(p, "%s%d", driver->name, index + driver->name_base);
|
|
|
|
|
|
+ return sprintf(p, "%s%d", driver->name,
|
|
|
|
+ index + driver->name_base);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -3545,9 +3546,19 @@ static ssize_t show_cons_active(struct device *dev,
|
|
if (i >= ARRAY_SIZE(cs))
|
|
if (i >= ARRAY_SIZE(cs))
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- while (i--)
|
|
|
|
- count += sprintf(buf + count, "%s%d%c",
|
|
|
|
- cs[i]->name, cs[i]->index, i ? ' ':'\n');
|
|
|
|
|
|
+ while (i--) {
|
|
|
|
+ int index = cs[i]->index;
|
|
|
|
+ struct tty_driver *drv = cs[i]->device(cs[i], &index);
|
|
|
|
+
|
|
|
|
+ /* don't resolve tty0 as some programs depend on it */
|
|
|
|
+ if (drv && (cs[i]->index > 0 || drv->major != TTY_MAJOR))
|
|
|
|
+ count += tty_line_name(drv, index, buf + count);
|
|
|
|
+ else
|
|
|
|
+ count += sprintf(buf + count, "%s%d",
|
|
|
|
+ cs[i]->name, cs[i]->index);
|
|
|
|
+
|
|
|
|
+ count += sprintf(buf + count, "%c", i ? ' ':'\n');
|
|
|
|
+ }
|
|
console_unlock();
|
|
console_unlock();
|
|
|
|
|
|
return count;
|
|
return count;
|