[PATCH] uml: fail xterm_open when we have no $DISPLAY

From: Chris Wedgwood
Date: Sun Nov 14 2004 - 22:33:41 EST


If UML wants to open an xterm channel and the xterm does not run
properly (eg. terminates soon after starting) we will get a hang.
This avoids the most common cause for this and adds a comment (which
long term will go away with a rewrite of that code I guess?)

Signed-off-by: Chris Wedgwood <cw@xxxxxxxx>
---

arch/um/drivers/xterm.c | 7 +++++++
arch/um/drivers/xterm_kern.c | 3 +++
2 files changed, 10 insertions(+)

Index: cw-current/arch/um/drivers/xterm.c
===================================================================
--- cw-current.orig/arch/um/drivers/xterm.c 2004-11-14 17:52:05.955194653 -0800
+++ cw-current/arch/um/drivers/xterm.c 2004-11-14 17:52:23.048945524 -0800
@@ -94,6 +94,13 @@
"/usr/lib/uml/port-helper", "-uml-socket",
file, NULL };

+ /* Check that DISPLAY is set, this doesn't guarantee the xterm
+ * will work but w/o it we can be pretty sure it won't. */
+ if (!getenv("DISPLAY")) {
+ printk("xterm_open: $DISPLAY not set.\n");
+ return -ENODEV;
+ }
+
if(os_access(argv[4], OS_ACC_X_OK) < 0)
argv[4] = "port-helper";

Index: cw-current/arch/um/drivers/xterm_kern.c
===================================================================
--- cw-current.orig/arch/um/drivers/xterm_kern.c 2004-11-14 17:52:51.484194558 -0800
+++ cw-current/arch/um/drivers/xterm_kern.c 2004-11-14 17:53:09.197972625 -0800
@@ -61,6 +61,9 @@
ret = err;
goto out;
}
+
+ /* XXX Note, if the xterm doesn't work for some reason
+ * (eg. DISPLAY isn't set this will hang... */
down(&data->sem);

free_irq_by_irq_and_dev(XTERM_IRQ, data);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/