public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Matt Mackall <mpm@selenic.com>
To: Andrew Morton <akpm@osdl.org>
Cc: YhLu@tyan.com, linux-tiny@selenic.com, linux-kernel@vger.kernel.org
Subject: Re: serial console
Date: Mon, 16 May 2005 16:47:57 -0700	[thread overview]
Message-ID: <20050516234757.GG5914@waste.org> (raw)
In-Reply-To: <20050516163712.66a1a058.akpm@osdl.org>

On Mon, May 16, 2005 at 04:37:12PM -0700, Andrew Morton wrote:
> 
> It would be nicer if this was a static inline, so all the function call
> code at the callsites is removed by the compiler.

Better yet, a patch that's actually right. add_preferred_console is
setting the console used by init and so on, so it's still relevant
with CONFIG_PRINTK off. So I just move it out of the ifdef. Obviously
more correct(tm).


Move add_preferred_console out of CONFIG_PRINTK so serial console does
the right thing.

Signed-off-by: Matt Mackall <mpm@selenic.com>

Index: l-p/kernel/printk.c
===================================================================
--- l-p.orig/kernel/printk.c	2005-05-16 16:37:15.000000000 -0700
+++ l-p/kernel/printk.c	2005-05-16 16:40:31.000000000 -0700
@@ -160,42 +160,6 @@ static int __init console_setup(char *st
 
 __setup("console=", console_setup);
 
-/**
- * add_preferred_console - add a device to the list of preferred consoles.
- *
- * The last preferred console added will be used for kernel messages
- * and stdin/out/err for init.  Normally this is used by console_setup
- * above to handle user-supplied console arguments; however it can also
- * be used by arch-specific code either to override the user or more
- * commonly to provide a default console (ie from PROM variables) when
- * the user has not supplied one.
- */
-int __init add_preferred_console(char *name, int idx, char *options)
-{
-	struct console_cmdline *c;
-	int i;
-
-	/*
-	 *	See if this tty is not yet registered, and
-	 *	if we have a slot free.
-	 */
-	for(i = 0; i < MAX_CMDLINECONSOLES && console_cmdline[i].name[0]; i++)
-		if (strcmp(console_cmdline[i].name, name) == 0 &&
-			  console_cmdline[i].index == idx) {
-				selected_console = i;
-				return 0;
-		}
-	if (i == MAX_CMDLINECONSOLES)
-		return -E2BIG;
-	selected_console = i;
-	c = &console_cmdline[i];
-	memcpy(c->name, name, sizeof(c->name));
-	c->name[sizeof(c->name) - 1] = 0;
-	c->options = options;
-	c->index = idx;
-	return 0;
-}
-
 static int __init log_buf_len_setup(char *str)
 {
 	unsigned long size = memparse(str, &str);
@@ -671,6 +635,42 @@ static void call_console_drivers(unsigne
 #endif
 
 /**
+ * add_preferred_console - add a device to the list of preferred consoles.
+ *
+ * The last preferred console added will be used for kernel messages
+ * and stdin/out/err for init.  Normally this is used by console_setup
+ * above to handle user-supplied console arguments; however it can also
+ * be used by arch-specific code either to override the user or more
+ * commonly to provide a default console (ie from PROM variables) when
+ * the user has not supplied one.
+ */
+int __init add_preferred_console(char *name, int idx, char *options)
+{
+	struct console_cmdline *c;
+	int i;
+
+	/*
+	 *	See if this tty is not yet registered, and
+	 *	if we have a slot free.
+	 */
+	for(i = 0; i < MAX_CMDLINECONSOLES && console_cmdline[i].name[0]; i++)
+		if (strcmp(console_cmdline[i].name, name) == 0 &&
+			  console_cmdline[i].index == idx) {
+				selected_console = i;
+				return 0;
+		}
+	if (i == MAX_CMDLINECONSOLES)
+		return -E2BIG;
+	selected_console = i;
+	c = &console_cmdline[i];
+	memcpy(c->name, name, sizeof(c->name));
+	c->name[sizeof(c->name) - 1] = 0;
+	c->options = options;
+	c->index = idx;
+	return 0;
+}
+
+/**
  * acquire_console_sem - lock the console system for exclusive use.
  *
  * Acquires a semaphore which guarantees that the caller has


-- 
Mathematics is the supreme nostalgia of our time.

  reply	other threads:[~2005-05-16 23:48 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <3174569B9743D511922F00A0C943142309F80D9F@TYANWEB>
     [not found] ` <20050516205731.GA5914@waste.org>
2005-05-16 23:15   ` serial console Matt Mackall
2005-05-16 23:37     ` Andrew Morton
2005-05-16 23:47       ` Matt Mackall [this message]
2005-05-17  1:24         ` Coywolf Qi Hunt
2005-05-17  2:26           ` Matt Mackall
2005-05-17  2:40             ` Coywolf Qi Hunt
2005-05-17  2:19     ` Rob Landley
     [not found] <200208191108120240.0D409F0A@192.168.128.16>
2002-08-19  9:10 ` Serial Console Carlos Velasco
2002-08-19  9:18   ` Russell King
2000-12-05 18:09 Jon Burgess
  -- strict thread matches above, loose matches on Subject: below --
2000-12-05 15:20 Jon Burgess
2000-12-05 16:03 ` Chad Schwartz
2000-12-05 12:04 Steve Hill
2000-12-05 12:11 ` Miquel van Smoorenburg
2000-12-05 14:44 ` Paul Jakma
2000-12-05 14:58   ` Steve Hill
2000-12-05 15:07     ` Chad Schwartz
2000-12-05 15:14     ` Paul Jakma
2000-12-05 15:28       ` Steve Hill
2000-12-05 15:38         ` Chad Schwartz
2000-12-05 16:25       ` Rogier Wolff
2000-12-05 17:00         ` Miquel van Smoorenburg
2000-12-06 13:09 ` Vitaly Luban

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050516234757.GG5914@waste.org \
    --to=mpm@selenic.com \
    --cc=YhLu@tyan.com \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tiny@selenic.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox