linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] printk: Check valid console index for preferred console
@ 2023-10-12  6:42 Tony Lindgren
  2023-10-12  6:42 ` [PATCH 2/2] printk: Constify name for add_preferred_console() Tony Lindgren
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Tony Lindgren @ 2023-10-12  6:42 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Petr Mladek, Steven Rostedt, John Ogness,
	Sergey Senozhatsky
  Cc: Jiri Slaby, linux-kernel

Let's check for valid console index values for preferred console to avoid
bogus console index numbers from kernel command line.

Let's also return an error for negative index numbers for the preferred
console. Unlike for device drivers, a negative index is not valid for the
preferred console.

Let's also constify idx while at it.

Signed-off-by: Tony Lindgren <tony@atomide.com>
---

Changes since v2:

- Fix a mismerge for const char *name while changing the patch
  order as noted by Jiri

- Clarify patch description and code comments for struct console
  negative index usage as noted by Petr

Changes since v1:

- Use const short idx and return an error on negative values

---
 include/linux/console.h |  2 +-
 kernel/printk/printk.c  | 12 ++++++++++--
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/include/linux/console.h b/include/linux/console.h
--- a/include/linux/console.h
+++ b/include/linux/console.h
@@ -340,7 +340,7 @@ enum con_flush_mode {
 	CONSOLE_REPLAY_ALL,
 };
 
-extern int add_preferred_console(char *name, int idx, char *options);
+extern int add_preferred_console(char *name, const short idx, char *options);
 extern void console_force_preferred_locked(struct console *con);
 extern void register_console(struct console *);
 extern int unregister_console(struct console *);
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -2404,12 +2404,20 @@ static void set_user_specified(struct console_cmdline *c, bool user_specified)
 	console_set_on_cmdline = 1;
 }
 
-static int __add_preferred_console(char *name, int idx, char *options,
+static int __add_preferred_console(char *name, const short idx, char *options,
 				   char *brl_options, bool user_specified)
 {
 	struct console_cmdline *c;
 	int i;
 
+	/*
+	 * We use a signed short index for struct console for device drivers to
+	 * indicate a not yet assigned index or port. However, a negative index
+	 * value is not valid for preferred console.
+	 */
+	if (idx < 0)
+		return -EINVAL;
+
 	/*
 	 *	See if this tty is not yet registered, and
 	 *	if we have a slot free.
@@ -2513,7 +2521,7 @@ __setup("console=", console_setup);
  * commonly to provide a default console (ie from PROM variables) when
  * the user has not supplied one.
  */
-int add_preferred_console(char *name, int idx, char *options)
+int add_preferred_console(char *name, const short idx, char *options)
 {
 	return __add_preferred_console(name, idx, options, NULL, false);
 }
-- 
2.42.0

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 2/2] printk: Constify name for add_preferred_console()
  2023-10-12  6:42 [PATCH 1/2] printk: Check valid console index for preferred console Tony Lindgren
@ 2023-10-12  6:42 ` Tony Lindgren
  2023-10-16 18:45 ` [PATCH 1/2] printk: Check valid console index for preferred console Greg Kroah-Hartman
  2023-10-19 13:25 ` Petr Mladek
  2 siblings, 0 replies; 5+ messages in thread
From: Tony Lindgren @ 2023-10-12  6:42 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Petr Mladek, Steven Rostedt, John Ogness,
	Sergey Senozhatsky
  Cc: Jiri Slaby, linux-kernel

While adding a preferred console handling for serial_core for serial port
hardware based device addressing, Jiri suggested we constify name for
add_preferred_console(). The name gets copied anyways. This allows serial
core to add a preferred console using serial drv->dev_name without copying
it.

Note that constifying options causes changes all over the place because of
struct console for match().

Suggested-by: Jiri Slaby <jirislaby@kernel.org>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---

Changes since v2:

- Rebase after fixing patch 1/2 the const char *name mismerge

Changes since v1:

- Updated to apply on the const short idx change

- Separated out of the serial core related patches, the serial core
  changes still need some more changes for preferred console usage

- Added Reviewed-by from Petr from the serial core thread

---
 include/linux/console.h | 2 +-
 kernel/printk/printk.c  | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/linux/console.h b/include/linux/console.h
--- a/include/linux/console.h
+++ b/include/linux/console.h
@@ -340,7 +340,7 @@ enum con_flush_mode {
 	CONSOLE_REPLAY_ALL,
 };
 
-extern int add_preferred_console(char *name, const short idx, char *options);
+extern int add_preferred_console(const char *name, const short idx, char *options);
 extern void console_force_preferred_locked(struct console *con);
 extern void register_console(struct console *);
 extern int unregister_console(struct console *);
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -2404,7 +2404,7 @@ static void set_user_specified(struct console_cmdline *c, bool user_specified)
 	console_set_on_cmdline = 1;
 }
 
-static int __add_preferred_console(char *name, const short idx, char *options,
+static int __add_preferred_console(const char *name, const short idx, char *options,
 				   char *brl_options, bool user_specified)
 {
 	struct console_cmdline *c;
@@ -2521,7 +2521,7 @@ __setup("console=", console_setup);
  * commonly to provide a default console (ie from PROM variables) when
  * the user has not supplied one.
  */
-int add_preferred_console(char *name, const short idx, char *options)
+int add_preferred_console(const char *name, const short idx, char *options)
 {
 	return __add_preferred_console(name, idx, options, NULL, false);
 }
-- 
2.42.0

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] printk: Check valid console index for preferred console
  2023-10-12  6:42 [PATCH 1/2] printk: Check valid console index for preferred console Tony Lindgren
  2023-10-12  6:42 ` [PATCH 2/2] printk: Constify name for add_preferred_console() Tony Lindgren
@ 2023-10-16 18:45 ` Greg Kroah-Hartman
  2023-10-16 18:45   ` Greg Kroah-Hartman
  2023-10-19 13:25 ` Petr Mladek
  2 siblings, 1 reply; 5+ messages in thread
From: Greg Kroah-Hartman @ 2023-10-16 18:45 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Petr Mladek, Steven Rostedt, John Ogness, Sergey Senozhatsky,
	Jiri Slaby, linux-kernel

On Thu, Oct 12, 2023 at 09:42:56AM +0300, Tony Lindgren wrote:
> Let's check for valid console index values for preferred console to avoid
> bogus console index numbers from kernel command line.
> 
> Let's also return an error for negative index numbers for the preferred
> console. Unlike for device drivers, a negative index is not valid for the
> preferred console.
> 
> Let's also constify idx while at it.
> 
> Signed-off-by: Tony Lindgren <tony@atomide.com>

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] printk: Check valid console index for preferred console
  2023-10-16 18:45 ` [PATCH 1/2] printk: Check valid console index for preferred console Greg Kroah-Hartman
@ 2023-10-16 18:45   ` Greg Kroah-Hartman
  0 siblings, 0 replies; 5+ messages in thread
From: Greg Kroah-Hartman @ 2023-10-16 18:45 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Petr Mladek, Steven Rostedt, John Ogness, Sergey Senozhatsky,
	Jiri Slaby, linux-kernel

On Mon, Oct 16, 2023 at 08:45:00PM +0200, Greg Kroah-Hartman wrote:
> On Thu, Oct 12, 2023 at 09:42:56AM +0300, Tony Lindgren wrote:
> > Let's check for valid console index values for preferred console to avoid
> > bogus console index numbers from kernel command line.
> > 
> > Let's also return an error for negative index numbers for the preferred
> > console. Unlike for device drivers, a negative index is not valid for the
> > preferred console.
> > 
> > Let's also constify idx while at it.
> > 
> > Signed-off-by: Tony Lindgren <tony@atomide.com>
> 
> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Oops, you want these to go through my tree, I'll take them now...

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] printk: Check valid console index for preferred console
  2023-10-12  6:42 [PATCH 1/2] printk: Check valid console index for preferred console Tony Lindgren
  2023-10-12  6:42 ` [PATCH 2/2] printk: Constify name for add_preferred_console() Tony Lindgren
  2023-10-16 18:45 ` [PATCH 1/2] printk: Check valid console index for preferred console Greg Kroah-Hartman
@ 2023-10-19 13:25 ` Petr Mladek
  2 siblings, 0 replies; 5+ messages in thread
From: Petr Mladek @ 2023-10-19 13:25 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Greg Kroah-Hartman, Steven Rostedt, John Ogness,
	Sergey Senozhatsky, Jiri Slaby, linux-kernel

On Thu 2023-10-12 09:42:56, Tony Lindgren wrote:
> Let's check for valid console index values for preferred console to avoid
> bogus console index numbers from kernel command line.
> 
> Let's also return an error for negative index numbers for the preferred
> console. Unlike for device drivers, a negative index is not valid for the
> preferred console.
> 
> Let's also constify idx while at it.
> 
> Signed-off-by: Tony Lindgren <tony@atomide.com>

Makes sense:

Reviewed-by: Petr Mladek <pmladek@suse.com>

Best Regards,
Petr

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-10-19 13:25 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-12  6:42 [PATCH 1/2] printk: Check valid console index for preferred console Tony Lindgren
2023-10-12  6:42 ` [PATCH 2/2] printk: Constify name for add_preferred_console() Tony Lindgren
2023-10-16 18:45 ` [PATCH 1/2] printk: Check valid console index for preferred console Greg Kroah-Hartman
2023-10-16 18:45   ` Greg Kroah-Hartman
2023-10-19 13:25 ` Petr Mladek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).