From: Jesper Juhl <juhl@eisenstein.dk>
To: linux-kernel@vger.kernel.org
Cc: Keith Owens <kaos@ocs.com.au>, "Randy.Dunlap" <rddunlap@osdl.org>,
linux-ia64@linuxia64.org
Subject: [PATCH] console_loglevel broken on ia64 - please test and comment
Date: Wed, 17 Oct 2001 22:53:32 +0200 [thread overview]
Message-ID: <3BCDEFCC.35FCFB69@eisenstein.dk> (raw)
[-- Attachment #1: Type: text/plain, Size: 1104 bytes --]
This is an attempt to fix the broken console_loglevel in kernel/printk.c
that Keith Owens reported to the list some hours ago.
Instead of the four different _loglevel variables it adds a
console_printk array to hold the four values - that should be safe.
I have tested this as far as
a) it compiles
b) it boots
c) it has not exploded yet after more than an hour of use
d) "cat /proc/sys/kernel/printk" output looks sane both with and without
the patch
e) changing console_loglevel with "ALT-Sysrq-<number>" works and is
correctly reflected in /proc/sys/kernel/printk
Randy Dunlap was kind enough to take a look at the patch and thought it
looked ok, so I'm now submitting it to a broader audience to get some
more feedback before I try to send this off to Linux and/or Alan.
If nobody seems to screams at it too badly, then I'll make a version
against -ac as well and send it off to Linus and Alan for them to look
at and hopefully include in the next kernel.
The patch is against 2.4.13-pre3 and is attached as
"2.4.13-pre3-console_loglevel.patch".
Best regards,
Jesper Juhl
juhl@eisenstein.dk
[-- Attachment #2: 2.4.13-pre3-console_loglevel.patch --]
[-- Type: text/plain, Size: 2698 bytes --]
diff -ur linux-2.4.13-pre3-orig/arch/i386/mm/fault.c linux-2.4.13-pre3/arch/i386/mm/fault.c
--- linux-2.4.13-pre3-orig/arch/i386/mm/fault.c Wed Oct 10 00:13:03 2001
+++ linux-2.4.13-pre3/arch/i386/mm/fault.c Wed Oct 17 20:04:33 2001
@@ -27,8 +27,6 @@
extern void die(const char *,struct pt_regs *,long);
-extern int console_loglevel;
-
/*
* Ugly, ugly, but the goto's result in better assembly..
*/
diff -ur linux-2.4.13-pre3-orig/arch/parisc/kernel/traps.c linux-2.4.13-pre3/arch/parisc/kernel/traps.c
--- linux-2.4.13-pre3-orig/arch/parisc/kernel/traps.c Sun Sep 30 21:26:08 2001
+++ linux-2.4.13-pre3/arch/parisc/kernel/traps.c Wed Oct 17 20:05:21 2001
@@ -43,7 +43,6 @@
static inline void console_verbose(void)
{
- extern int console_loglevel;
console_loglevel = 15;
}
diff -ur linux-2.4.13-pre3-orig/include/linux/kernel.h linux-2.4.13-pre3/include/linux/kernel.h
--- linux-2.4.13-pre3-orig/include/linux/kernel.h Thu Oct 11 08:44:33 2001
+++ linux-2.4.13-pre3/include/linux/kernel.h Wed Oct 17 22:05:00 2001
@@ -36,6 +36,13 @@
#define KERN_INFO "<6>" /* informational */
#define KERN_DEBUG "<7>" /* debug-level messages */
+extern int console_printk[];
+
+#define console_loglevel (console_printk[0])
+#define default_message_loglevel (console_printk[1])
+#define minimum_console_loglevel (console_printk[2])
+#define default_console_loglevel (console_printk[3])
+
# define NORET_TYPE /**/
# define ATTRIB_NORET __attribute__((noreturn))
# define NORET_AND noreturn,
@@ -79,8 +86,6 @@
asmlinkage int printk(const char * fmt, ...)
__attribute__ ((format (printf, 1, 2)));
-
-extern int console_loglevel;
static inline void console_silent(void)
{
diff -ur linux-2.4.13-pre3-orig/kernel/printk.c linux-2.4.13-pre3/kernel/printk.c
--- linux-2.4.13-pre3-orig/kernel/printk.c Mon Sep 17 22:16:30 2001
+++ linux-2.4.13-pre3/kernel/printk.c Wed Oct 17 22:21:51 2001
@@ -16,6 +16,7 @@
* 01Mar01 Andrew Morton <andrewm@uow.edu.au>
*/
+#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/tty.h>
#include <linux/tty_driver.h>
@@ -39,11 +40,12 @@
DECLARE_WAIT_QUEUE_HEAD(log_wait);
-/* Keep together for sysctl support */
-int console_loglevel = DEFAULT_CONSOLE_LOGLEVEL;
-int default_message_loglevel = DEFAULT_MESSAGE_LOGLEVEL;
-int minimum_console_loglevel = MINIMUM_CONSOLE_LOGLEVEL;
-int default_console_loglevel = DEFAULT_CONSOLE_LOGLEVEL;
+int console_printk[4] = {
+ DEFAULT_CONSOLE_LOGLEVEL, /* console_loglevel */
+ DEFAULT_MESSAGE_LOGLEVEL, /* default_message_loglevel */
+ MINIMUM_CONSOLE_LOGLEVEL, /* minimum_console_loglevel */
+ DEFAULT_CONSOLE_LOGLEVEL, /* default_console_loglevel */
+};
int oops_in_progress;
reply other threads:[~2001-10-17 20:53 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=3BCDEFCC.35FCFB69@eisenstein.dk \
--to=juhl@eisenstein.dk \
--cc=kaos@ocs.com.au \
--cc=linux-ia64@linuxia64.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rddunlap@osdl.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.