* patch for 2.4.1 disable printk and panic messages
@ 2001-02-06 21:52 Stefani Seibold
0 siblings, 0 replies; 2+ messages in thread
From: Stefani Seibold @ 2001-02-06 21:52 UTC (permalink / raw)
To: linux-kernel; +Cc: Stefani
Hi,
this is an updated release of my patch for disabling all kernel
messages. It is usefull on deep embedded systems with no human interactions
and for rescue discs where the diskspace is always to less.
To Linus: What must i do, to get this patch in the offical kernel?
To Zack Brown: Not all kernel hackers are boys. I am by definition a girl ;-)
Greetings,
Stefani
-----patch for 2.4.1disable printk and panic -----
diff -u --recursive --new-file linux/CREDITS linux.noprintk/CREDITS
--- linux/CREDITS Sun Dec 31 18:27:57 2000
+++ linux.noprintk/CREDITS Fri Jan 26 10:51:19 2001
@@ -2396,6 +2396,14 @@
S: Oldenburg
S: Germany
+N: Stefani Seibold
+E: Stefani@Seibold.net
+D: Option to disable all kernel messages by overload printk with a
+D: dummy macro (saves a lot of disk- and ramspace for embedded systems
+D: and rescue disks).
+S: Munich
+S: Germany
+
N: Darren Senn
E: sinster@darkwater.com
D: Whatever I notice needs doing (so far: itimers, /proc)
diff -u --recursive --new-file linux/Documentation/Configure.help
linux.noprintk/Documentation/Configure.help
--- linux/Documentation/Configure.help Thu Jan 4 22:00:55 2001
+++ linux.noprintk/Documentation/Configure.help Sun Jan 28 10:57:29 2001
@@ -12224,6 +12224,14 @@
If unsure, say Y, or else you won't be able to do much with your new
shiny Linux system :-)
+Disable kernel messages
+CONFIG_NOPRINTK
+ This option allows you to disable all kernel messages by overriding
+ the printk function a dummy macro.
+ On small embedded systems, this save a lot of rom and ram space. On
+ server or desktop systems you want human readable outputs, so it is
+ normally the best choice to say N to this option.
+
Support for console on virtual terminal
CONFIG_VT_CONSOLE
The system console is the device which receives all kernel messages
diff -u --recursive --new-file linux/arch/alpha/config.in
linux.noprintk/arch/alpha/config.in
--- linux/arch/alpha/config.in Fri Dec 29 23:07:19 2000
+++ linux.noprintk/arch/alpha/config.in Sun Jan 28 10:56:21 2001
@@ -359,6 +359,7 @@
fi
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
bool 'Legacy kernel start address' CONFIG_ALPHA_LEGACY_START_ADDRESS
diff -u --recursive --new-file linux/arch/arm/config.in
linux.noprintk/arch/arm/config.in
--- linux/arch/arm/config.in Thu Nov 16 21:51:28 2000
+++ linux.noprintk/arch/arm/config.in Sun Jan 28 10:55:58 2001
@@ -414,6 +414,7 @@
bool 'Verbose user fault messages' CONFIG_DEBUG_USER
bool 'Include debugging information in kernel binary' CONFIG_DEBUG_INFO
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
if [ "$CONFIG_CPU_26" = "y" ]; then
bool 'Disable pgtable cache' CONFIG_NO_PGT_CACHE
fi
diff -u --recursive --new-file linux/arch/i386/config.in
linux.noprintk/arch/i386/config.in
--- linux/arch/i386/config.in Fri Dec 29 23:35:47 2000
+++ linux.noprintk/arch/i386/config.in Sun Jan 28 10:56:04 2001
@@ -366,4 +366,5 @@
#bool 'Debug kmalloc/kfree' CONFIG_DEBUG_MALLOC
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
endmenu
diff -u --recursive --new-file linux/arch/ia64/config.in
linux.noprintk/arch/ia64/config.in
--- linux/arch/ia64/config.in Thu Jan 4 21:50:17 2001
+++ linux.noprintk/arch/ia64/config.in Sun Jan 28 10:56:07 2001
@@ -249,6 +249,7 @@
fi
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
bool 'Early printk support (requires VGA!)' CONFIG_IA64_EARLY_PRINTK
bool 'Turn on compare-and-exchange bug checking (slow!)'
CONFIG_IA64_DEBUG_CMPXCHG
bool 'Turn on irq debug checks (slow!)' CONFIG_IA64_DEBUG_IRQ
diff -u --recursive --new-file linux/arch/m68k/config.in
linux.noprintk/arch/m68k/config.in
--- linux/arch/m68k/config.in Thu Jan 4 22:00:55 2001
+++ linux.noprintk/arch/m68k/config.in Sun Jan 28 10:56:09 2001
@@ -538,4 +538,5 @@
#bool 'Debug kmalloc/kfree' CONFIG_DEBUG_MALLOC
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
endmenu
diff -u --recursive --new-file linux/arch/mips/config.in
linux.noprintk/arch/mips/config.in
--- linux/arch/mips/config.in Thu Nov 16 21:51:28 2000
+++ linux.noprintk/arch/mips/config.in Sun Jan 28 10:56:12 2001
@@ -397,4 +397,5 @@
bool 'Remote GDB kernel debugging' CONFIG_REMOTE_DEBUG
fi
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
endmenu
diff -u --recursive --new-file linux/arch/mips64/config.in
linux.noprintk/arch/mips64/config.in
--- linux/arch/mips64/config.in Wed Nov 29 06:42:04 2000
+++ linux.noprintk/arch/mips64/config.in Sun Jan 28 10:56:31 2001
@@ -266,4 +266,5 @@
fi
bool 'Remote GDB kernel debugging' CONFIG_REMOTE_DEBUG
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
endmenu
diff -u --recursive --new-file linux/arch/parisc/config.in
linux.noprintk/arch/parisc/config.in
--- linux/arch/parisc/config.in Tue Dec 5 21:29:39 2000
+++ linux.noprintk/arch/parisc/config.in Sun Jan 28 10:56:34 2001
@@ -204,5 +204,6 @@
#bool 'Debug kmalloc/kfree' CONFIG_DEBUG_MALLOC
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
endmenu
diff -u --recursive --new-file linux/arch/ppc/config.in
linux.noprintk/arch/ppc/config.in
--- linux/arch/ppc/config.in Thu Nov 16 21:51:28 2000
+++ linux.noprintk/arch/ppc/config.in Sun Jan 28 10:56:01 2001
@@ -332,6 +332,7 @@
comment 'Kernel hacking'
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
bool 'Include kgdb kernel debugger' CONFIG_KGDB
bool 'Include xmon kernel debugger' CONFIG_XMON
endmenu
diff -u --recursive --new-file linux/arch/sh/config.in
linux.noprintk/arch/sh/config.in
--- linux/arch/sh/config.in Thu Jan 4 22:19:13 2001
+++ linux.noprintk/arch/sh/config.in Sun Jan 28 10:55:55 2001
@@ -260,6 +260,7 @@
comment 'Kernel hacking'
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
bool 'Use LinuxSH standard BIOS' CONFIG_SH_STANDARD_BIOS
if [ "$CONFIG_SH_STANDARD_BIOS" = "y" ]; then
bool 'GDB Stub kernel debug' CONFIG_DEBUG_KERNEL_WITH_GDB_STUB
diff -u --recursive --new-file linux/arch/sparc/config.in
linux.noprintk/arch/sparc/config.in
--- linux/arch/sparc/config.in Wed Nov 29 06:53:44 2000
+++ linux.noprintk/arch/sparc/config.in Sun Jan 28 10:56:26 2001
@@ -261,4 +261,5 @@
comment 'Kernel hacking'
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
endmenu
diff -u --recursive --new-file linux/arch/sparc64/config.in
linux.noprintk/arch/sparc64/config.in
--- linux/arch/sparc64/config.in Thu Nov 16 21:51:28 2000
+++ linux.noprintk/arch/sparc64/config.in Sun Jan 28 10:56:29 2001
@@ -335,5 +335,6 @@
comment 'Kernel hacking'
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
#bool 'ECache flush trap support at ta 0x72' CONFIG_EC_FLUSH_TRAP
endmenu
diff -u --recursive --new-file linux/include/asm-i386/spinlock.h
linux.noprintk/include/asm-i386/spinlock.h
--- linux/include/asm-i386/spinlock.h Thu Jan 4 23:50:46 2001
+++ linux.noprintk/include/asm-i386/spinlock.h Sun Jan 28 12:16:17 2001
@@ -5,8 +5,10 @@
#include <asm/rwlock.h>
#include <asm/page.h>
+#ifndef CONFIG_NOPRINTK
extern int printk(const char * fmt, ...)
__attribute__ ((format (printf, 1, 2)));
+#endif
/* It seems that people are forgetting to
* initialize their spinlocks properly, tsk tsk.
diff -u --recursive --new-file linux/include/linux/kernel.h
linux.noprintk/include/linux/kernel.h
--- linux/include/linux/kernel.h Mon Dec 11 21:49:54 2000
+++ linux.noprintk/include/linux/kernel.h Mon Jan 29 21:03:40 2001
@@ -48,8 +48,15 @@
struct semaphore;
extern struct notifier_block *panic_notifier_list;
+#ifdef CONFIG_NOPRINTK
+
+#define panic(format, args...) ((format ,## args),panic_nomsg())
+
+NORET_TYPE void panic_nomsg(void) ATTRIB_NORET;
+#else
NORET_TYPE void panic(const char * fmt, ...)
__attribute__ ((NORET_AND format (printf, 1, 2)));
+#endif
NORET_TYPE void do_exit(long error_code)
ATTRIB_NORET;
NORET_TYPE void up_and_exit(struct semaphore *, long)
@@ -68,8 +75,15 @@
extern int session_of_pgrp(int pgrp);
+#ifdef CONFIG_NOPRINTK
+#define printk(format, args...) ((format ,## args),(int)0)
+
+#else
+
asmlinkage int printk(const char * fmt, ...)
__attribute__ ((format (printf, 1, 2)));
+#endif
+
extern int console_loglevel;
diff -u --recursive --new-file linux/kernel/ksyms.c
linux.noprintk/kernel/ksyms.c
--- linux/kernel/ksyms.c Wed Jan 3 01:45:37 2001
+++ linux.noprintk/kernel/ksyms.c Sun Jan 28 10:56:51 2001
@@ -440,8 +440,10 @@
EXPORT_SYMBOL(nr_running);
/* misc */
+#ifndef CONFIG_NOPRINTK
EXPORT_SYMBOL(panic);
EXPORT_SYMBOL(printk);
+#endif
EXPORT_SYMBOL(sprintf);
EXPORT_SYMBOL(vsprintf);
EXPORT_SYMBOL(kdevname);
diff -u --recursive --new-file linux/kernel/panic.c
linux.noprintk/kernel/panic.c
--- linux/kernel/panic.c Mon Oct 16 21:58:51 2000
+++ linux.noprintk/kernel/panic.c Sun Jan 28 12:13:47 2001
@@ -43,18 +43,25 @@
* This function never returns.
*/
+#ifdef CONFIG_NOPRINTK
+NORET_TYPE void panic_nomsg(void)
+#else
NORET_TYPE void panic(const char * fmt, ...)
+#endif
{
- static char buf[1024];
- va_list args;
#if defined(CONFIG_ARCH_S390)
unsigned long caller = (unsigned long) __builtin_return_address(0);
#endif
+#ifndef CONFIG_NOPRINTK
+ static char buf[1024];
+ va_list args;
+
va_start(args, fmt);
vsprintf(buf, fmt, args);
va_end(args);
printk(KERN_EMERG "Kernel panic: %s\n",buf);
+#endif
if (in_interrupt())
printk(KERN_EMERG "In interrupt handler - not syncing\n");
else if (!current->pid)
@@ -70,6 +77,9 @@
notifier_call_chain(&panic_notifier_list, 0, NULL);
+#ifdef CONFIG_NOPRINTK
+ machine_restart(NULL);
+#else
if (panic_timeout > 0)
{
/*
@@ -93,6 +103,7 @@
printk("Press L1-A to return to the boot prom\n");
}
#endif
+#endif
#if defined(CONFIG_ARCH_S390)
disabled_wait(caller);
#endif
@@ -101,3 +112,18 @@
CHECK_EMERGENCY_SYNC
}
}
+
+#ifdef CONFIG_NOPRINTK
+#undef panic
+
+#include <linux/module.h>
+
+NORET_TYPE void panic(const char * fmt, ...)
+{
+ panic_nomsg();
+}
+
+EXPORT_SYMBOL_NOVERS(panic);
+
+#endif
+
diff -u --recursive --new-file linux/kernel/printk.c
linux.noprintk/kernel/printk.c
--- linux/kernel/printk.c Sun Dec 31 03:16:13 2000
+++ linux.noprintk/kernel/printk.c Sun Jan 28 10:57:23 2001
@@ -25,7 +25,9 @@
#define LOG_BUF_LEN (16384)
#define LOG_BUF_MASK (LOG_BUF_LEN-1)
+#ifndef CONFIG_NOPRINTK
static char buf[1024];
+#endif
/* printk's without a loglevel use this.. */
#define DEFAULT_MESSAGE_LOGLEVEL 4 /* KERN_WARNING */
@@ -251,6 +253,20 @@
return do_syslog(type, buf, len);
}
+
+#ifdef CONFIG_NOPRINTK
+#undef printk
+
+#include <linux/module.h>
+
+asmlinkage int printk(const char *fmt, ...)
+{
+ return 0;
+}
+
+EXPORT_SYMBOL_NOVERS(printk);
+
+#else
asmlinkage int printk(const char *fmt, ...)
{
va_list args;
@@ -311,6 +327,7 @@
wake_up_interruptible(&log_wait);
return i;
}
+#endif
void console_print(const char *s)
{
diff -u --recursive --new-file linux/Makefile linux.noprintk/Makefile
--- linux/Makefile Thu Jan 4 22:48:13 2001
+++ linux.noprintk/Makefile Mon Jan 29 20:51:51 2001
@@ -89,6 +90,10 @@
CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
-fno-strict-aliasing
AFLAGS := -D__ASSEMBLY__ $(CPPFLAGS)
+
+ifneq ($(CONFIG_NOPRINTK),)
+CFLAGS += -Wno-unused
+endif
#
# ROOT_DEV specifies the default root-device when making the image.
-------------------------------------------------------
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: patch for 2.4.1 disable printk and panic messages
[not found] <Pine.SGI.4.10.10102071945350.926064-100000@Sky.inp.nsk.su>
@ 2001-02-08 11:44 ` Stefani Seibold
0 siblings, 0 replies; 2+ messages in thread
From: Stefani Seibold @ 2001-02-08 11:44 UTC (permalink / raw)
To: torvalds, alan, D.A.Fedorov; +Cc: linux-kernel
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="US-ASCII", Size: 12405 bytes --]
> I think it is better to remove statements about rescue discs from patch
> because rescue discs are often interactive systems and needs messages even
> more than desktops.
> And statement about saving disk space by removing messages can irritate
> some kernel people.
I write it now a little bit lightweight - or maybe for recuse disks - okay?
>> To Linus: What must i do, to get this patch in the offical kernel?
> You should forward patch to Linus directly - I'm see that it is normal
> practice in list.
Hi Linus, do you think it is possible to get this patch in the offical kernel?
I had it tested now very well, and it should have no side effects with the new
macro expantion. All arguments of the printk and panic macro will be evaulated.
> Your mail client program wraps around long lines and patch fails
> without editing it in two places.
Sorry, here is the correct version of the patch, without line wraps:
-----patch for 2.4.1disable printk and panic -----
diff -u --recursive --new-file linux/CREDITS linux.noprintk/CREDITS
--- linux/CREDITS Sun Dec 31 18:27:57 2000
+++ linux.noprintk/CREDITS Fri Jan 26 10:51:19 2001
@@ -2396,6 +2396,14 @@
S: Oldenburg
S: Germany
+N: Stefani Seibold
+E: Stefani@Seibold.net
+D: Option to disable all kernel messages by overload printk with a
+D: dummy macro (saves a lot of disk- and ramspace for deeply embedded
+D: systems and maybe for rescue disks).
+S: Munich
+S: Germany
+
N: Darren Senn
E: sinster@darkwater.com
D: Whatever I notice needs doing (so far: itimers, /proc)
diff -u --recursive --new-file linux/Documentation/Configure.help linux.noprintk/Documentation/Configure.help
--- linux/Documentation/Configure.help Thu Jan 4 22:00:55 2001
+++ linux.noprintk/Documentation/Configure.help Sun Jan 28 10:57:29 2001
@@ -12224,6 +12224,14 @@
If unsure, say Y, or else you won't be able to do much with your new
shiny Linux system :-)
+Disable kernel messages
+CONFIG_NOPRINTK
+ This option allows you to disable all kernel messages by overriding
+ the printk function a dummy macro.
+ On small embedded systems, this save a lot of rom and ram space. On
+ server or desktop systems you want human readable outputs, so it is
+ normally the best choice to say N to this option.
+
Support for console on virtual terminal
CONFIG_VT_CONSOLE
The system console is the device which receives all kernel messages
diff -u --recursive --new-file linux/arch/alpha/config.in linux.noprintk/arch/alpha/config.in
--- linux/arch/alpha/config.in Fri Dec 29 23:07:19 2000
+++ linux.noprintk/arch/alpha/config.in Sun Jan 28 10:56:21 2001
@@ -359,6 +359,7 @@
fi
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
bool 'Legacy kernel start address' CONFIG_ALPHA_LEGACY_START_ADDRESS
diff -u --recursive --new-file linux/arch/arm/config.in linux.noprintk/arch/arm/config.in
--- linux/arch/arm/config.in Thu Nov 16 21:51:28 2000
+++ linux.noprintk/arch/arm/config.in Sun Jan 28 10:55:58 2001
@@ -414,6 +414,7 @@
bool 'Verbose user fault messages' CONFIG_DEBUG_USER
bool 'Include debugging information in kernel binary' CONFIG_DEBUG_INFO
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
if [ "$CONFIG_CPU_26" = "y" ]; then
bool 'Disable pgtable cache' CONFIG_NO_PGT_CACHE
fi
diff -u --recursive --new-file linux/arch/i386/config.in linux.noprintk/arch/i386/config.in
--- linux/arch/i386/config.in Fri Dec 29 23:35:47 2000
+++ linux.noprintk/arch/i386/config.in Sun Jan 28 10:56:04 2001
@@ -366,4 +366,5 @@
#bool 'Debug kmalloc/kfree' CONFIG_DEBUG_MALLOC
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
endmenu
diff -u --recursive --new-file linux/arch/ia64/config.in linux.noprintk/arch/ia64/config.in
--- linux/arch/ia64/config.in Thu Jan 4 21:50:17 2001
+++ linux.noprintk/arch/ia64/config.in Sun Jan 28 10:56:07 2001
@@ -249,6 +249,7 @@
fi
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
bool 'Early printk support (requires VGA!)' CONFIG_IA64_EARLY_PRINTK
bool 'Turn on compare-and-exchange bug checking (slow!)' CONFIG_IA64_DEBUG_CMPXCHG
bool 'Turn on irq debug checks (slow!)' CONFIG_IA64_DEBUG_IRQ
diff -u --recursive --new-file linux/arch/m68k/config.in linux.noprintk/arch/m68k/config.in
--- linux/arch/m68k/config.in Thu Jan 4 22:00:55 2001
+++ linux.noprintk/arch/m68k/config.in Sun Jan 28 10:56:09 2001
@@ -538,4 +538,5 @@
#bool 'Debug kmalloc/kfree' CONFIG_DEBUG_MALLOC
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
endmenu
diff -u --recursive --new-file linux/arch/mips/config.in linux.noprintk/arch/mips/config.in
--- linux/arch/mips/config.in Thu Nov 16 21:51:28 2000
+++ linux.noprintk/arch/mips/config.in Sun Jan 28 10:56:12 2001
@@ -397,4 +397,5 @@
bool 'Remote GDB kernel debugging' CONFIG_REMOTE_DEBUG
fi
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
endmenu
diff -u --recursive --new-file linux/arch/mips64/config.in linux.noprintk/arch/mips64/config.in
--- linux/arch/mips64/config.in Wed Nov 29 06:42:04 2000
+++ linux.noprintk/arch/mips64/config.in Sun Jan 28 10:56:31 2001
@@ -266,4 +266,5 @@
fi
bool 'Remote GDB kernel debugging' CONFIG_REMOTE_DEBUG
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
endmenu
diff -u --recursive --new-file linux/arch/parisc/config.in linux.noprintk/arch/parisc/config.in
--- linux/arch/parisc/config.in Tue Dec 5 21:29:39 2000
+++ linux.noprintk/arch/parisc/config.in Sun Jan 28 10:56:34 2001
@@ -204,5 +204,6 @@
#bool 'Debug kmalloc/kfree' CONFIG_DEBUG_MALLOC
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
endmenu
diff -u --recursive --new-file linux/arch/ppc/config.in linux.noprintk/arch/ppc/config.in
--- linux/arch/ppc/config.in Thu Nov 16 21:51:28 2000
+++ linux.noprintk/arch/ppc/config.in Sun Jan 28 10:56:01 2001
@@ -332,6 +332,7 @@
comment 'Kernel hacking'
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
bool 'Include kgdb kernel debugger' CONFIG_KGDB
bool 'Include xmon kernel debugger' CONFIG_XMON
endmenu
diff -u --recursive --new-file linux/arch/sh/config.in linux.noprintk/arch/sh/config.in
--- linux/arch/sh/config.in Thu Jan 4 22:19:13 2001
+++ linux.noprintk/arch/sh/config.in Sun Jan 28 10:55:55 2001
@@ -260,6 +260,7 @@
comment 'Kernel hacking'
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
bool 'Use LinuxSH standard BIOS' CONFIG_SH_STANDARD_BIOS
if [ "$CONFIG_SH_STANDARD_BIOS" = "y" ]; then
bool 'GDB Stub kernel debug' CONFIG_DEBUG_KERNEL_WITH_GDB_STUB
diff -u --recursive --new-file linux/arch/sparc/config.in linux.noprintk/arch/sparc/config.in
--- linux/arch/sparc/config.in Wed Nov 29 06:53:44 2000
+++ linux.noprintk/arch/sparc/config.in Sun Jan 28 10:56:26 2001
@@ -261,4 +261,5 @@
comment 'Kernel hacking'
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
endmenu
diff -u --recursive --new-file linux/arch/sparc64/config.in linux.noprintk/arch/sparc64/config.in
--- linux/arch/sparc64/config.in Thu Nov 16 21:51:28 2000
+++ linux.noprintk/arch/sparc64/config.in Sun Jan 28 10:56:29 2001
@@ -335,5 +335,6 @@
comment 'Kernel hacking'
bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
+bool 'Disable kernel messages' CONFIG_NOPRINTK
#bool 'ECache flush trap support at ta 0x72' CONFIG_EC_FLUSH_TRAP
endmenu
diff -u --recursive --new-file linux/include/asm-i386/spinlock.h linux.noprintk/include/asm-i386/spinlock.h
--- linux/include/asm-i386/spinlock.h Thu Jan 4 23:50:46 2001
+++ linux.noprintk/include/asm-i386/spinlock.h Sun Jan 28 12:16:17 2001
@@ -5,8 +5,10 @@
#include <asm/rwlock.h>
#include <asm/page.h>
+#ifndef CONFIG_NOPRINTK
extern int printk(const char * fmt, ...)
__attribute__ ((format (printf, 1, 2)));
+#endif
/* It seems that people are forgetting to
* initialize their spinlocks properly, tsk tsk.
diff -u --recursive --new-file linux/include/linux/kernel.h linux.noprintk/include/linux/kernel.h
--- linux/include/linux/kernel.h Mon Dec 11 21:49:54 2000
+++ linux.noprintk/include/linux/kernel.h Mon Jan 29 21:03:40 2001
@@ -48,8 +48,15 @@
struct semaphore;
extern struct notifier_block *panic_notifier_list;
+#ifdef CONFIG_NOPRINTK
+
+#define panic(format, args...) ((format ,## args),panic_nomsg())
+
+NORET_TYPE void panic_nomsg(void) ATTRIB_NORET;
+#else
NORET_TYPE void panic(const char * fmt, ...)
__attribute__ ((NORET_AND format (printf, 1, 2)));
+#endif
NORET_TYPE void do_exit(long error_code)
ATTRIB_NORET;
NORET_TYPE void up_and_exit(struct semaphore *, long)
@@ -68,8 +75,15 @@
extern int session_of_pgrp(int pgrp);
+#ifdef CONFIG_NOPRINTK
+#define printk(format, args...) ((format ,## args),(int)0)
+
+#else
+
asmlinkage int printk(const char * fmt, ...)
__attribute__ ((format (printf, 1, 2)));
+#endif
+
extern int console_loglevel;
diff -u --recursive --new-file linux/kernel/ksyms.c linux.noprintk/kernel/ksyms.c
--- linux/kernel/ksyms.c Wed Jan 3 01:45:37 2001
+++ linux.noprintk/kernel/ksyms.c Sun Jan 28 10:56:51 2001
@@ -440,8 +440,10 @@
EXPORT_SYMBOL(nr_running);
/* misc */
+#ifndef CONFIG_NOPRINTK
EXPORT_SYMBOL(panic);
EXPORT_SYMBOL(printk);
+#endif
EXPORT_SYMBOL(sprintf);
EXPORT_SYMBOL(vsprintf);
EXPORT_SYMBOL(kdevname);
diff -u --recursive --new-file linux/kernel/panic.c linux.noprintk/kernel/panic.c
--- linux/kernel/panic.c Mon Oct 16 21:58:51 2000
+++ linux.noprintk/kernel/panic.c Sun Jan 28 12:13:47 2001
@@ -43,18 +43,25 @@
* This function never returns.
*/
+#ifdef CONFIG_NOPRINTK
+NORET_TYPE void panic_nomsg(void)
+#else
NORET_TYPE void panic(const char * fmt, ...)
+#endif
{
- static char buf[1024];
- va_list args;
#if defined(CONFIG_ARCH_S390)
unsigned long caller = (unsigned long) __builtin_return_address(0);
#endif
+#ifndef CONFIG_NOPRINTK
+ static char buf[1024];
+ va_list args;
+
va_start(args, fmt);
vsprintf(buf, fmt, args);
va_end(args);
printk(KERN_EMERG "Kernel panic: %s\n",buf);
+#endif
if (in_interrupt())
printk(KERN_EMERG "In interrupt handler - not syncing\n");
else if (!current->pid)
@@ -70,6 +77,9 @@
notifier_call_chain(&panic_notifier_list, 0, NULL);
+#ifdef CONFIG_NOPRINTK
+ machine_restart(NULL);
+#else
if (panic_timeout > 0)
{
/*
@@ -93,6 +103,7 @@
printk("Press L1-A to return to the boot prom\n");
}
#endif
+#endif
#if defined(CONFIG_ARCH_S390)
disabled_wait(caller);
#endif
@@ -101,3 +112,18 @@
CHECK_EMERGENCY_SYNC
}
}
+
+#ifdef CONFIG_NOPRINTK
+#undef panic
+
+#include <linux/module.h>
+
+NORET_TYPE void panic(const char * fmt, ...)
+{
+ panic_nomsg();
+}
+
+EXPORT_SYMBOL_NOVERS(panic);
+
+#endif
+
diff -u --recursive --new-file linux/kernel/printk.c linux.noprintk/kernel/printk.c
--- linux/kernel/printk.c Sun Dec 31 03:16:13 2000
+++ linux.noprintk/kernel/printk.c Sun Jan 28 10:57:23 2001
@@ -25,7 +25,9 @@
#define LOG_BUF_LEN (16384)
#define LOG_BUF_MASK (LOG_BUF_LEN-1)
+#ifndef CONFIG_NOPRINTK
static char buf[1024];
+#endif
/* printk's without a loglevel use this.. */
#define DEFAULT_MESSAGE_LOGLEVEL 4 /* KERN_WARNING */
@@ -251,6 +253,20 @@
return do_syslog(type, buf, len);
}
+
+#ifdef CONFIG_NOPRINTK
+#undef printk
+
+#include <linux/module.h>
+
+asmlinkage int printk(const char *fmt, ...)
+{
+ return 0;
+}
+
+EXPORT_SYMBOL_NOVERS(printk);
+
+#else
asmlinkage int printk(const char *fmt, ...)
{
va_list args;
@@ -311,6 +327,7 @@
wake_up_interruptible(&log_wait);
return i;
}
+#endif
void console_print(const char *s)
{
diff -u --recursive --new-file linux/Makefile linux.noprintk/Makefile
--- linux/Makefile Thu Jan 4 22:48:13 2001
+++ linux.noprintk/Makefile Mon Jan 29 20:51:51 2001
@@ -89,6 +90,10 @@
CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing
AFLAGS := -D__ASSEMBLY__ $(CPPFLAGS)
+
+ifneq ($(CONFIG_NOPRINTK),)
+CFLAGS += -Wno-unused
+endif
#
# ROOT_DEV specifies the default root-device when making the image.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2001-02-08 11:47 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-02-06 21:52 patch for 2.4.1 disable printk and panic messages Stefani Seibold
[not found] <Pine.SGI.4.10.10102071945350.926064-100000@Sky.inp.nsk.su>
2001-02-08 11:44 ` Stefani Seibold
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®