
From: Jeff Dike <jdike@addtoit.com>

This patch makes UML produce error messages instead of silently exiting
when one of several configuration mistakes are made.  FD_CHAN is now
mandatory so that people don't turn it off and complain about no boot
messages.

Some printks were turned into printfs in the tt mode gdb code so that they
appear on the screen.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/arch/um/Kconfig_char        |   11 +----------
 25-akpm/arch/um/defconfig           |    3 +--
 25-akpm/arch/um/drivers/Makefile    |    3 +--
 25-akpm/arch/um/drivers/chan_kern.c |    4 ----
 25-akpm/arch/um/kernel/tt/gdb.c     |    8 ++++----
 5 files changed, 7 insertions(+), 22 deletions(-)

diff -puN arch/um/defconfig~uml-make-a-common-misconfiguration-impossible arch/um/defconfig
--- 25/arch/um/defconfig~uml-make-a-common-misconfiguration-impossible	2005-01-09 23:44:09.114777832 -0800
+++ 25-akpm/arch/um/defconfig	2005-01-09 23:44:09.124776312 -0800
@@ -92,13 +92,12 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
 CONFIG_STDERR_CONSOLE=y
 CONFIG_STDIO_CONSOLE=y
 CONFIG_SSL=y
-CONFIG_FD_CHAN=y
 CONFIG_NULL_CHAN=y
 CONFIG_PORT_CHAN=y
 CONFIG_PTY_CHAN=y
 CONFIG_TTY_CHAN=y
 CONFIG_XTERM_CHAN=y
-# CONFIG_NOCONFIG_CHAN is not set
+CONFIG_NOCONFIG_CHAN=y
 CONFIG_CON_ZERO_CHAN="fd:0,fd:1"
 CONFIG_CON_CHAN="xterm"
 CONFIG_SSL_CHAN="pty"
diff -puN arch/um/drivers/chan_kern.c~uml-make-a-common-misconfiguration-impossible arch/um/drivers/chan_kern.c
--- 25/arch/um/drivers/chan_kern.c~uml-make-a-common-misconfiguration-impossible	2005-01-09 23:44:09.115777680 -0800
+++ 25-akpm/arch/um/drivers/chan_kern.c	2005-01-09 23:44:09.125776160 -0800
@@ -399,11 +399,7 @@ struct chan_type {
 };
 
 struct chan_type chan_table[] = {
-#ifdef CONFIG_FD_CHAN
 	{ "fd", &fd_ops },
-#else
-	{ "fd", &not_configged_ops },
-#endif
 
 #ifdef CONFIG_NULL_CHAN
 	{ "null", &null_ops },
diff -puN arch/um/drivers/Makefile~uml-make-a-common-misconfiguration-impossible arch/um/drivers/Makefile
--- 25/arch/um/drivers/Makefile~uml-make-a-common-misconfiguration-impossible	2005-01-09 23:44:09.117777376 -0800
+++ 25-akpm/arch/um/drivers/Makefile	2005-01-09 23:44:09.125776160 -0800
@@ -20,7 +20,7 @@ ubd-objs := ubd_kern.o ubd_user.o
 port-objs := port_kern.o port_user.o
 harddog-objs := harddog_kern.o harddog_user.o
 
-obj-y := stdio_console.o $(CHAN_OBJS)
+obj-y := stdio_console.o fd.o $(CHAN_OBJS)
 obj-$(CONFIG_SSL) += ssl.o
 obj-$(CONFIG_STDERR_CONSOLE) += stderr_console.o
 
@@ -34,7 +34,6 @@ obj-$(CONFIG_MCONSOLE) += mconsole.o
 obj-$(CONFIG_MMAPPER) += mmapper_kern.o 
 obj-$(CONFIG_BLK_DEV_UBD) += ubd.o 
 obj-$(CONFIG_HOSTAUDIO) += hostaudio.o
-obj-$(CONFIG_FD_CHAN) += fd.o 
 obj-$(CONFIG_NULL_CHAN) += null.o 
 obj-$(CONFIG_PORT_CHAN) += port.o
 obj-$(CONFIG_PTY_CHAN) += pty.o
diff -puN arch/um/Kconfig_char~uml-make-a-common-misconfiguration-impossible arch/um/Kconfig_char
--- 25/arch/um/Kconfig_char~uml-make-a-common-misconfiguration-impossible	2005-01-09 23:44:09.119777072 -0800
+++ 25-akpm/arch/um/Kconfig_char	2005-01-09 23:44:09.124776312 -0800
@@ -23,15 +23,6 @@ config SSL
 
         Unless you have a specific reason for disabling this, say Y.
 
-config FD_CHAN
-	bool "file descriptor channel support"
-	help
-        This option enables support for attaching UML consoles and serial
-        lines to already set up file descriptors.  Generally, the main
-        console is attached to file descriptors 0 and 1 (stdin and stdout),
-        so it would be wise to leave this enabled unless you intend to
-        attach it to some other host device.
-
 config NULL_CHAN
 	bool "null channel support"
 	help
@@ -80,7 +71,7 @@ config XTERM_CHAN
 
 config NOCONFIG_CHAN
 	bool
-	default !(XTERM_CHAN && TTY_CHAN && PTY_CHAN && PORT_CHAN && FD_CHAN && NULL_CHAN)
+	default !(XTERM_CHAN && TTY_CHAN && PTY_CHAN && PORT_CHAN && NULL_CHAN)
 
 config CON_ZERO_CHAN
 	string "Default main console channel initialization"
diff -puN arch/um/kernel/tt/gdb.c~uml-make-a-common-misconfiguration-impossible arch/um/kernel/tt/gdb.c
--- 25/arch/um/kernel/tt/gdb.c~uml-make-a-common-misconfiguration-impossible	2005-01-09 23:44:09.120776920 -0800
+++ 25-akpm/arch/um/kernel/tt/gdb.c	2005-01-09 23:44:09.126776008 -0800
@@ -162,7 +162,7 @@ int gdb_remove(char *unused)
 void signal_usr1(int sig)
 {
 	if(debugger_pid != -1){
-		printk(UM_KERN_ERR "The debugger is already running\n");
+		printf("The debugger is already running\n");
 		return;
 	}
 	debugger_pid = start_debugger(linux_prog, 0, 0, &debugger_fd);
@@ -228,19 +228,19 @@ int debugger_signal(int status, pid_t pi
 void child_signal(pid_t pid, int status){ }
 int init_ptrace_proxy(int idle_pid, int startup, int stop)
 {
-	printk(UM_KERN_ERR "debug requested when CONFIG_PT_PROXY is off\n");
+	printf("debug requested when CONFIG_PT_PROXY is off\n");
 	kill_child_dead(idle_pid);
 	exit(1);
 }
 
 void signal_usr1(int sig)
 {
-	printk(UM_KERN_ERR "debug requested when CONFIG_PT_PROXY is off\n");
+	printf("debug requested when CONFIG_PT_PROXY is off\n");
 }
 
 int attach_debugger(int idle_pid, int pid, int stop)
 {
-	printk(UM_KERN_ERR "attach_debugger called when CONFIG_PT_PROXY "
+	printf("attach_debugger called when CONFIG_PT_PROXY "
 	       "is off\n");
 	return(-1);
 }
_
