[PATCH] Fix linux banner utsname information
authorHerbert Poetzl <herbert@13thfloor.at>
Fri, 8 Dec 2006 10:36:00 +0000 (02:36 -0800)
committerLinus Torvalds <torvalds@woody.osdl.org>
Fri, 8 Dec 2006 16:28:37 +0000 (08:28 -0800)
utsname information is shown in the linux banner, which also is used for
/proc/version (which can have different utsname values inside a uts
namespaces).  this patch makes the varying data arguments and changes the
string to a format string, using those arguments.

Signed-off-by: Herbert Poetzl <herbert@13thfloor.at>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/proc/proc_misc.c
init/Makefile
init/main.c
init/version.c

index 51815cece6f37cd92852d6b753049f12ce19bad6..9397ff62553eca5a8e6d0101ba47df6a32d21979 100644 (file)
@@ -252,8 +252,8 @@ static int version_read_proc(char *page, char **start, off_t off,
 {
        int len;
 
-       strcpy(page, linux_banner);
-       len = strlen(page);
+       len = sprintf(page, linux_banner,
+               utsname()->release, utsname()->version);
        return proc_calc_metrics(page, start, off, count, eof, len);
 }
 
index 633a268d270d3cc8bfa906c1a22476caa9645360..d6c764d0eabbefcd01afb7dfaced7b277bdaa581 100644 (file)
@@ -15,6 +15,7 @@ clean-files := ../include/linux/compile.h
 
 # dependencies on generated files need to be listed explicitly
 
+$(obj)/main.o: include/linux/compile.h
 $(obj)/version.o: include/linux/compile.h
 
 # compile.h changes depending on hostname, generation number, etc,
index 1174ae3aec8c0741f7ec3303c241816613ce3ff0..4cdcd06e6d7826bf1448204c4d9c1f430b12367e 100644 (file)
@@ -50,6 +50,8 @@
 #include <linux/buffer_head.h>
 #include <linux/debug_locks.h>
 #include <linux/lockdep.h>
+#include <linux/utsrelease.h>
+#include <linux/compile.h>
 
 #include <asm/io.h>
 #include <asm/bugs.h>
@@ -506,7 +508,7 @@ asmlinkage void __init start_kernel(void)
        boot_cpu_init();
        page_address_init();
        printk(KERN_NOTICE);
-       printk(linux_banner);
+       printk(linux_banner, UTS_RELEASE, UTS_VERSION);
        setup_arch(&command_line);
        unwind_setup();
        setup_per_cpu_areas();
index 8f28344d9c70fda49300ac1455e98e086913b481..2a5dfcd1c2e6a373bb81dfa100b786e133066316 100644 (file)
@@ -35,5 +35,6 @@ struct uts_namespace init_uts_ns = {
 EXPORT_SYMBOL_GPL(init_uts_ns);
 
 const char linux_banner[] =
-       "Linux version " UTS_RELEASE " (" LINUX_COMPILE_BY "@"
-       LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n";
+       "Linux version %s (" LINUX_COMPILE_BY "@"
+       LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") %s\n";
+