changeset 324:966e397abd60

Get User Mode Linux boot messages to SHUT UP in the presence of "quiet".
author Rob Landley <rob@landley.net>
date Sat, 03 May 2008 15:22:55 -0500
parents 84db3197ae6c
children 51bcd6de223d
files sources/patches/linux-2.6.25-umlwarn.patch
diffstat 1 files changed, 112 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sources/patches/linux-2.6.25-umlwarn.patch	Sat May 03 15:22:55 2008 -0500
@@ -0,0 +1,112 @@
+From: Rob Landley <rob@landley.net>
+
+I usually use UML as a better fakeroot, meaning I run it with a command line
+like "rootfstype=hostfs rw quiet init=/path/to/some_shell_script.sh".  In this
+context, filling the screen with parse_chan_pair error messages which don't
+actually hurt anything defeats the purpose of adding "quiet".
+
+The patch turns several KERN_ERR into KERN_WARNING.  While I was there, I
+merged the redundant printk() statements into a function, and added an "else"
+after a test-for-null that did a printk but didn't do a continue.
+
+Signed-off-by: Rob Landley <rob@landley.net>
+---
+
+ arch/um/drivers/chan_kern.c |   31 +++++++++++++++----------------
+ arch/um/drivers/line.c      |    4 ++--
+ 2 files changed, 17 insertions(+), 18 deletions(-)
+
+diff -r 7c6e2a3db359 arch/um/drivers/chan_kern.c
+--- a/arch/um/drivers/chan_kern.c	Wed Apr 30 11:52:52 2008 -0700
++++ b/arch/um/drivers/chan_kern.c	Sat May 03 15:03:20 2008 -0500
+@@ -10,61 +10,60 @@
+ #include "os.h"
+ 
+ #ifdef CONFIG_NOCONFIG_CHAN
++
++static void not_configged_warn(void)
++{
++	printk(KERN_WARNING "Using a channel type which is configured out of "
++	       "UML\n");
++}
++
+ static void *not_configged_init(char *str, int device,
+ 				const struct chan_opts *opts)
+ {
+-	printk(KERN_ERR "Using a channel type which is configured out of "
+-	       "UML\n");
++	not_configged_warn();
+ 	return NULL;
+ }
+ 
+ static int not_configged_open(int input, int output, int primary, void *data,
+ 			      char **dev_out)
+ {
+-	printk(KERN_ERR "Using a channel type which is configured out of "
+-	       "UML\n");
++	not_configged_warn();
+ 	return -ENODEV;
+ }
+ 
+ static void not_configged_close(int fd, void *data)
+ {
+-	printk(KERN_ERR "Using a channel type which is configured out of "
+-	       "UML\n");
++	not_configged_warn();
+ }
+ 
+ static int not_configged_read(int fd, char *c_out, void *data)
+ {
+-	printk(KERN_ERR "Using a channel type which is configured out of "
+-	       "UML\n");
++	not_configged_warn();
+ 	return -EIO;
+ }
+ 
+ static int not_configged_write(int fd, const char *buf, int len, void *data)
+ {
+-	printk(KERN_ERR "Using a channel type which is configured out of "
+-	       "UML\n");
++	not_configged_warn();
+ 	return -EIO;
+ }
+ 
+ static int not_configged_console_write(int fd, const char *buf, int len)
+ {
+-	printk(KERN_ERR "Using a channel type which is configured out of "
+-	       "UML\n");
++	not_configged_warn();
+ 	return -EIO;
+ }
+ 
+ static int not_configged_window_size(int fd, void *data, unsigned short *rows,
+ 				     unsigned short *cols)
+ {
+-	printk(KERN_ERR "Using a channel type which is configured out of "
+-	       "UML\n");
++	not_configged_warn();
+ 	return -ENODEV;
+ }
+ 
+ static void not_configged_free(void *data)
+ {
+-	printk(KERN_ERR "Using a channel type which is configured out of "
+-	       "UML\n");
++	not_configged_warn();
+ }
+ 
+ static const struct chan_ops not_configged_ops = {
+diff -r 7c6e2a3db359 arch/um/drivers/line.c
+--- a/arch/um/drivers/line.c	Wed Apr 30 11:52:52 2008 -0700
++++ b/arch/um/drivers/line.c	Sat May 03 15:03:20 2008 -0500
+@@ -717,8 +717,8 @@
+ 		if (line->init_str == NULL)
+ 			printk(KERN_ERR "lines_init - kstrdup returned NULL\n");
+ 
+-		if (parse_chan_pair(line->init_str, line, i, opts, &error)) {
+-			printk(KERN_ERR "parse_chan_pair failed for "
++		else if (parse_chan_pair(line->init_str, line, i, opts, &error)) {
++			printk(KERN_WARNING "parse_chan_pair failed for "
+ 			       "device %d : %s\n", i, error);
+ 			line->valid = 0;
+ 		}