Hello.

If you're using a 3270 console with linux-390 you may have noticed that
when you give the "reboot" command your system typically goes into a
disabled loop.  Here's a patch to cure the problem.  It should apply
cleanly on any 2.4.7, 2.4.9, or 2.4.17 kernel tree.  Alan, Martin,
whoever is appropriate, I'd be grateful if you could accept this patch
into your forthcoming work.

-------- start of patch
diff -urN -X dontdiff linux/drivers/s390/char/tubtty.c 
linux-3270fix/drivers/s390/char/tubtty.c
--- linux/drivers/s390/char/tubtty.c    Mon May  6 13:52:35 2002
+++ linux-3270fix/drivers/s390/char/tubtty.c    Mon May  6 13:12:21 2002
@@ -603,12 +603,20 @@
 static void
 tty3270_bh(void *data)
 {
-       long flags;
        tub_t *tubp;
+       ioinfo_t *ioinfop;
+       long flags;
        struct tty_struct *tty;

-       tubp = data;
-       TUBLOCK(tubp->irq, flags);
+       ioinfop = ioinfo[(tubp = data)->irq];
+       while (TUBTRYLOCK(tubp->irq, flags) == 0) {
+               if (ioinfop->ui.flags.unready == 1)
+                       return;
+       }
+       if (ioinfop->ui.flags.unready == 1 ||
+           ioinfop->ui.flags.ready == 0)
+               goto do_unlock;
+
        tubp->flags &= ~TUB_BHPENDING;
        tty = tubp->tty;

-------- end of patch

Dick Hitt   [EMAIL PROTECTED]

Reply via email to