public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* console_loglevel is broken on ia64
@ 2001-10-17 13:25 Keith Owens
  2001-10-17 13:39 ` Jesper Juhl
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Keith Owens @ 2001-10-17 13:25 UTC (permalink / raw)
  To: linux-kernel; +Cc: linux-ia64

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;


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2001-10-17 15:34 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-10-17 13:25 console_loglevel is broken on ia64 Keith Owens
2001-10-17 13:39 ` Jesper Juhl
2001-10-17 13:53   ` Keith Owens
2001-10-17 15:00 ` Geert Uytterhoeven
2001-10-17 15:29 ` Randy.Dunlap

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox