mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Matthew Wilcox <matthew@wil.cx>
To: Andrew Morton <akpm@zip.com.au>
Cc: linux-kernel@vger.kernel.org
Subject: [PATCH] CON_BOOT
Date: Tue, 15 Mar 2005 22:27:06 +0000	[thread overview]
Message-ID: <20050315222706.GI21986@parcelfarce.linux.theplanet.co.uk> (raw)


New console flag: CON_BOOT

CON_BOOT is like early printk in that it allows for output really
early on.  It's better than early printk because it unregisters
automatically when a real console is initialised.  So if you don't get
consoles registering in console_init, there isn't a huge delay between
the boot console unregistering and the real console starting.  This is
the case on PA-RISC where we have serial ports that aren't discovered
until the PCI bus has been walked.

I think all the current early printk users could be converted to this
scheme with a minimal amount of effort.

diff -urpNX dontdiff linus-2.6/include/linux/console.h parisc-2.6/include/linux/console.h
--- linus-2.6/include/linux/console.h	2005-03-02 04:35:07.000000000 -0700
+++ parisc-2.6/include/linux/console.h	2005-03-02 04:25:54.000000000 -0700
@@ -84,6 +84,7 @@ void give_up_console(const struct consw 
 #define CON_PRINTBUFFER	(1)
 #define CON_CONSDEV	(2) /* Last on the command line */
 #define CON_ENABLED	(4)
+#define CON_BOOT	(8)
 
 struct console
 {
diff -urpNX dontdiff linus-2.6/kernel/printk.c parisc-2.6/kernel/printk.c
--- linus-2.6/kernel/printk.c	2005-03-02 04:35:10.000000000 -0700
+++ parisc-2.6/kernel/printk.c	2005-03-15 09:20:32.339891098 -0700
@@ -804,6 +804,11 @@ void register_console(struct console * c
 	if (!(console->flags & CON_ENABLED))
 		return;
 
+	if (console_drivers && (console_drivers->flags & CON_BOOT)) {
+		unregister_console(console_drivers);
+		console->flags &= ~CON_PRINTBUFFER;
+	}
+
 	/*
 	 *	Put this console in the list - keep the
 	 *	preferred driver at the head of the list.

-- 
"Next the statesmen will invent cheap lies, putting the blame upon 
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince 
himself that the war is just, and will thank God for the better sleep 
he enjoys after this process of grotesque self-deception." -- Mark Twain

             reply	other threads:[~2005-03-15 22:30 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-15 22:27 Matthew Wilcox [this message]
2005-03-15 22:37 ` Andrew Morton
2005-03-16 13:07   ` Matthew Wilcox
2005-03-16 21:09     ` Andrew Morton
2005-03-16 21:17       ` Matthew Wilcox
2005-03-16 21:52         ` James Simmons
2005-03-16 21:54       ` James Simmons
2005-03-16 22:57         ` Andrew Morton

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=20050315222706.GI21986@parcelfarce.linux.theplanet.co.uk \
    --to=matthew@wil.cx \
    --cc=akpm@zip.com.au \
    --cc=linux-kernel@vger.kernel.org \
    /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

Powered by JetHome