From: Jeff Dike 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 Signed-off-by: Andrew Morton --- 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", ¬_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); } _