lkml.org 
[lkml]   [2001]   [Oct]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subjectconsole_loglevel is broken on ia64
Date
kernel/printk.c has this abomination.

/* 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;

sysctl assumes that the 4 variables occupy contiguous storage. They
don't on ia64, console_loglevel is separate from the other variables.

echo 6 4 1 7 > /proc/sys/kernel/printk

on ia64 overwrites console_loglevel and the next 3 integers, whatever
they happen to be. On 2.4.12 it corrupts console_sem, other ia64
kernels will corrupt different data.

Does anybody fancy a small project to clean up these variables? They
need to become an integer array (say console_printk) containing 4
elements, which is what sysctl assumes. All references to these fields
have to be changed to refer to the corresponding array element. That
should be as simple as

#define console_loglevel (console_printk[0])

in kernel.h, as long as no other files declare console_loglevel or the
other variables. Alas at least two other files declare console_loglevel,
they need to be fixed to use the common declaration. I have not
checked the other console_xxx variables for extra declarations.

arch/parisc/kernel/traps.c: extern int console_loglevel;
arch/i386/mm/fault.c:extern int console_loglevel;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:08    [W:0.094 / U:0.292 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site