Re: console_loglevel is broken on ia64

Randy.Dunlap (rddunlap@osdl.org)
Wed, 17 Oct 2001 08:29:43 -0700


Keith Owens wrote:
>
> 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

Yep. I asked someone to clean this up about
3 weeks ago, and he said that he would do so, but....?

So Jesper or someone else should jump on it.

~Randy
-
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/