diff mbox

[3.8.y.z,extended,stable] Patch "tty: Set correct tty name in 'active' sysfs attribute" has been added to staging queue

Message ID 1393271461-7444-1-git-send-email-kamal@canonical.com
State New
Headers show

Commit Message

Kamal Mostafa Feb. 24, 2014, 7:51 p.m. UTC
This is a note to let you know that I have just added a patch titled

    tty: Set correct tty name in 'active' sysfs attribute

to the linux-3.8.y-queue branch of the 3.8.y.z extended stable tree 
which can be found at:

 http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.8.y-queue

This patch is scheduled to be released in version 3.8.13.19.

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.8.y.z tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable

Thanks.
-Kamal

------

From 148c61ec96294ff0f87bb63a7973fe9f009a7129 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Fri, 7 Feb 2014 11:38:30 +0100
Subject: tty: Set correct tty name in 'active' sysfs attribute

commit d8a5dc3033af2fd6d16030d2ee4fbd073460fe54 upstream.

The 'active' sysfs attribute should refer to the currently active tty
devices the console is running on, not the currently active console.

The console structure doesn't refer to any device in sysfs, only the tty
the console is running on has.  So we need to print out the tty names in
'active', not the console names.

This resolves an issue on s390 platforms in determining the correct
console device to use.

Cc: Lennart Poettering <lennart@poettering.net>
Cc: Kay Sievers <kay@vrfy.org>
Cc: Jiri Slaby <jslaby@suse.cz>
Cc: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Werner Fink <werner@suse.de>
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
---
 Documentation/ABI/testing/sysfs-tty |  3 ++-
 drivers/tty/tty_io.c                | 25 ++++++++++++++++++-------
 2 files changed, 20 insertions(+), 8 deletions(-)

--
1.8.3.2

Comments

Jiri Slaby Feb. 24, 2014, 7:52 p.m. UTC | #1
On 02/24/2014 08:51 PM, Kamal Mostafa wrote:
> This is a note to let you know that I have just added a patch titled
> 
>     tty: Set correct tty name in 'active' sysfs attribute

Nope, please drop this as it got reverted in
5c0a2450d695bbe32b1fb81c07751bcbea64f084

thanks,
Kamal Mostafa Feb. 24, 2014, 7:58 p.m. UTC | #2
On Mon, 2014-02-24 at 20:52 +0100, Jiri Slaby wrote:
> On 02/24/2014 08:51 PM, Kamal Mostafa wrote:
> > This is a note to let you know that I have just added a patch titled
> > 
> >     tty: Set correct tty name in 'active' sysfs attribute
> 
> Nope, please drop this as it got reverted in
> 5c0a2450d695bbe32b1fb81c07751bcbea64f084
> 
> thanks,


Dropped from the 3.8-stable queue.  Thanks, Jiri!

 -Kamal
diff mbox

Patch

diff --git a/Documentation/ABI/testing/sysfs-tty b/Documentation/ABI/testing/sysfs-tty
index ad22fb0..a2ccec3 100644
--- a/Documentation/ABI/testing/sysfs-tty
+++ b/Documentation/ABI/testing/sysfs-tty
@@ -3,7 +3,8 @@  Date:		Nov 2010
 Contact:	Kay Sievers <kay.sievers@vrfy.org>
 Description:
 		 Shows the list of currently configured
-		 console devices, like 'tty1 ttyS0'.
+		 tty devices used for the console,
+		 like 'tty1 ttyS0'.
 		 The last entry in the file is the active
 		 device connected to /dev/console.
 		 The file supports poll() to detect virtual
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
index f34f98d..1019b04 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
@@ -1217,16 +1217,17 @@  static void pty_line_name(struct tty_driver *driver, int index, char *p)
  *	@p: output buffer of at least 7 bytes
  *
  *	Generate a name from a driver reference and write it to the output
- *	buffer.
+ *	buffer. Return the number of bytes written.
  *
  *	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)
-		strcpy(p, driver->name);
+		return sprintf(p, "%s", driver->name);
 	else
-		sprintf(p, "%s%d", driver->name, index + driver->name_base);
+		return sprintf(p, "%s%d", driver->name,
+			       index + driver->name_base);
 }

 /**
@@ -3472,9 +3473,19 @@  static ssize_t show_cons_active(struct device *dev,
 		if (i >= ARRAY_SIZE(cs))
 			break;
 	}
-	while (i--)
-		count += sprintf(buf + count, "%s%d%c",
-				 cs[i]->name, cs[i]->index, i ? ' ':'\n');
+	while (i--) {
+		struct tty_driver *driver;
+		const char *name = cs[i]->name;
+		int index = cs[i]->index;
+
+		driver = cs[i]->device(cs[i], &index);
+		if (driver) {
+			count += tty_line_name(driver, index, buf + count);
+			count += sprintf(buf + count, "%c", i ? ' ':'\n');
+		} else
+			count += sprintf(buf + count, "%s%d%c",
+					 name, index, i ? ' ':'\n');
+	}
 	console_unlock();

 	return count;