linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: Patch to add SysRq handling to 3270 console
@ 2003-05-23 11:30 Martin Schwidefsky
  0 siblings, 0 replies; 14+ messages in thread
From: Martin Schwidefsky @ 2003-05-23 11:30 UTC (permalink / raw)
  To: Pete Zaitcev; +Cc: Arnd Bergmann, Pete Zaitcev, linux-kernel


> It's attached to RH bug #91338. I append it to this mail.
> I use 2.4.21-rc2-ac2, because pure Marcelo tree does not have
> a recent s390 codebase. He has the old "char *ctrlchar_handle()"
> still, and the patch won't apply.

Good. I'll add this to our code base and include it in our patches.


blue skies,
   Martin



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Patch to add SysRq handling to 3270 console
@ 2003-06-02  8:44 Martin Schwidefsky
  0 siblings, 0 replies; 14+ messages in thread
From: Martin Schwidefsky @ 2003-06-02  8:44 UTC (permalink / raw)
  To: Pete Zaitcev; +Cc: Arnd Bergmann, Pete Zaitcev, linux-kernel, Doug Ledford


> Would you take upon yourself, or make someone to discuss it
> with the linux-scsi cabal and get a resolution somehow?

Our scsi-folks are already discussing their changes on the linux-scsi
list and as far as I can judge from the things I find in 2.5 they
have some success getting their stuff accepted.

blue skies,
   Martin



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Patch to add SysRq handling to 3270 console
@ 2003-06-02  8:43 Martin Schwidefsky
  0 siblings, 0 replies; 14+ messages in thread
From: Martin Schwidefsky @ 2003-06-02  8:43 UTC (permalink / raw)
  To: Marcelo Tosatti
  Cc: Christoph Hellwig, Arnd Bergmann, Pete Zaitcev, linux-kernel


> > Can we come up with a way to get the s390 stuff into some early
> > pre version of 2.4.22 in a way that I have to cut the patches only
> > once? It is very frustrating to spent hours doing patch-editing,
> > only to have them vanish into nowhere.
>
> Please send me split up patches as soon as 2.4.22-pre is out.

Ok, I'll do that.

blue skies,
   Martin



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Patch to add SysRq handling to 3270 console
  2003-05-27  9:07 Martin Schwidefsky
  2003-05-27 18:35 ` Marcelo Tosatti
@ 2003-05-27 23:27 ` Pete Zaitcev
  1 sibling, 0 replies; 14+ messages in thread
From: Pete Zaitcev @ 2003-05-27 23:27 UTC (permalink / raw)
  To: Martin Schwidefsky
  Cc: Arnd Bergmann, Pete Zaitcev, linux-kernel, Doug Ledford

> From: "Martin Schwidefsky" <schwidefsky@de.ibm.com>
> Date: Tue, 27 May 2003 11:07:30 +0200

>[...]
> And its getting bigger if nothing ever gets integrated. And
> ALL of it is s390 only code. I skipped the common code parts
> which might have caused problems.

Martin, while we're on the topic of skipped common parts:
one common part which I see unlikely to be adopted into Alan
tree, not to mention Marcelo, is the scsi changes for zfcp.

Would you take upon yourself, or make someone to discuss it
with the linux-scsi cabal and get a resolution somehow?

Thanks,
-- Pete

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Patch to add SysRq handling to 3270 console
  2003-05-27  9:07 Martin Schwidefsky
@ 2003-05-27 18:35 ` Marcelo Tosatti
  2003-05-27 23:27 ` Pete Zaitcev
  1 sibling, 0 replies; 14+ messages in thread
From: Marcelo Tosatti @ 2003-05-27 18:35 UTC (permalink / raw)
  To: Martin Schwidefsky
  Cc: Christoph Hellwig, Arnd Bergmann, Pete Zaitcev, linux-kernel



On Tue, 27 May 2003, Martin Schwidefsky wrote:

>
> > > I considered the updates to be too late for 2.4.21.
> >
> > Too late and TOOO big.
>
> Hmm, last time I sent patches it was 24380 lines. You can argue
> about the dasd patch with 10647 lines which is big but the rest
> is just architecture updates that have accumulated over time.
> And its getting bigger if nothing ever gets integrated. And
> ALL of it is s390 only code. I skipped the common code parts
> which might have caused problems.
>
> The patch I sent to Alan was a bit bigger since it included the
> new tape driver as well (another 12000 lines) and had the latest
> bug fixes as well.
>
> Can we come up with a way to get the s390 stuff into some early
> pre version of 2.4.22 in a way that I have to cut the patches only
> once? It is very frustrating to spent hours doing patch-editing,
> only to have them vanish into nowhere.

Please send me split up patches as soon as 2.4.22-pre is out.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Patch to add SysRq handling to 3270 console
@ 2003-05-27  9:07 Martin Schwidefsky
  2003-05-27 18:35 ` Marcelo Tosatti
  2003-05-27 23:27 ` Pete Zaitcev
  0 siblings, 2 replies; 14+ messages in thread
From: Martin Schwidefsky @ 2003-05-27  9:07 UTC (permalink / raw)
  To: Marcelo Tosatti
  Cc: Christoph Hellwig, Arnd Bergmann, Pete Zaitcev, linux-kernel


> > I considered the updates to be too late for 2.4.21.
>
> Too late and TOOO big.

Hmm, last time I sent patches it was 24380 lines. You can argue
about the dasd patch with 10647 lines which is big but the rest
is just architecture updates that have accumulated over time.
And its getting bigger if nothing ever gets integrated. And
ALL of it is s390 only code. I skipped the common code parts
which might have caused problems.

The patch I sent to Alan was a bit bigger since it included the
new tape driver as well (another 12000 lines) and had the latest
bug fixes as well.

Can we come up with a way to get the s390 stuff into some early
pre version of 2.4.22 in a way that I have to cut the patches only
once? It is very frustrating to spent hours doing patch-editing,
only to have them vanish into nowhere.

blue skies,
   Martin



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Patch to add SysRq handling to 3270 console
  2003-05-26 18:50   ` Marcelo Tosatti
@ 2003-05-26 19:14     ` Marcelo Tosatti
  0 siblings, 0 replies; 14+ messages in thread
From: Marcelo Tosatti @ 2003-05-26 19:14 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Martin Schwidefsky, Arnd Bergmann, Pete Zaitcev, linux-kernel



On Mon, 26 May 2003, Marcelo Tosatti wrote:

>
>
> On Fri, 23 May 2003, Christoph Hellwig wrote:
>
> > On Fri, May 23, 2003 at 11:30:38AM +0200, Martin Schwidefsky wrote:
> > > code drop contains the changes & new features for the new machine. The
> > > IBM process forces us to publish the new features patches on developer
> > > works first before we can think about integration into the mainline.
> > > You may not like it but this is a restriction we as the s390 team at
> > > IBM have to live with.
> >
> > *sigh*  what about at least posting patches vs a current kernel? :)
> >
> > > > Btw, what's the state of 2.4.21-rc3 vs s390(x)?
> > > No too good. It basically works but there is a big bunch of patches
> > > missing. I sent them to Marcelo for integration a few weeks ago but
> > > to me Marcelo is a black hole.
>
> :/
>
> > Never heard anything about it, not
> > > even a "no". I sent Alan a copy of the patches adapted to his -ac
> > > tree. He accepted most of it into rc2-ac2.
> >
> > Marcelo, what's the state of the s390 updates?
>
> I considered the updates to be too late for 2.4.21.

Too late and TOOO big.

> 2.4.21 should be out soon, -rc4 is going out today and -rc5 is only going
> to happen if something REALLY bad happens.


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Patch to add SysRq handling to 3270 console
  2003-05-23  9:37 ` Christoph Hellwig
@ 2003-05-26 18:50   ` Marcelo Tosatti
  2003-05-26 19:14     ` Marcelo Tosatti
  0 siblings, 1 reply; 14+ messages in thread
From: Marcelo Tosatti @ 2003-05-26 18:50 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Martin Schwidefsky, Arnd Bergmann, Pete Zaitcev, linux-kernel



On Fri, 23 May 2003, Christoph Hellwig wrote:

> On Fri, May 23, 2003 at 11:30:38AM +0200, Martin Schwidefsky wrote:
> > code drop contains the changes & new features for the new machine. The
> > IBM process forces us to publish the new features patches on developer
> > works first before we can think about integration into the mainline.
> > You may not like it but this is a restriction we as the s390 team at
> > IBM have to live with.
>
> *sigh*  what about at least posting patches vs a current kernel? :)
>
> > > Btw, what's the state of 2.4.21-rc3 vs s390(x)?
> > No too good. It basically works but there is a big bunch of patches
> > missing. I sent them to Marcelo for integration a few weeks ago but
> > to me Marcelo is a black hole.

:/

> Never heard anything about it, not
> > even a "no". I sent Alan a copy of the patches adapted to his -ac
> > tree. He accepted most of it into rc2-ac2.
>
> Marcelo, what's the state of the s390 updates?

I considered the updates to be too late for 2.4.21.

2.4.21 should be out soon, -rc4 is going out today and -rc5 is only going
to happen if something REALLY bad happens.



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Patch to add SysRq handling to 3270 console
  2003-05-23  9:30 Martin Schwidefsky
@ 2003-05-23  9:37 ` Christoph Hellwig
  2003-05-26 18:50   ` Marcelo Tosatti
  0 siblings, 1 reply; 14+ messages in thread
From: Christoph Hellwig @ 2003-05-23  9:37 UTC (permalink / raw)
  To: Martin Schwidefsky, marcelo; +Cc: Arnd Bergmann, Pete Zaitcev, linux-kernel

On Fri, May 23, 2003 at 11:30:38AM +0200, Martin Schwidefsky wrote:
> code drop contains the changes & new features for the new machine. The
> IBM process forces us to publish the new features patches on developer
> works first before we can think about integration into the mainline.
> You may not like it but this is a restriction we as the s390 team at
> IBM have to live with.

*sigh*  what about at least posting patches vs a current kernel? :)

> > Btw, what's the state of 2.4.21-rc3 vs s390(x)?
> No too good. It basically works but there is a big bunch of patches
> missing. I sent them to Marcelo for integration a few weeks ago but
> to me Marcelo is a black hole. Never heard anything about it, not
> even a "no". I sent Alan a copy of the patches adapted to his -ac
> tree. He accepted most of it into rc2-ac2.

Marcelo, what's the state of the s390 updates?  


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Patch to add SysRq handling to 3270 console
@ 2003-05-23  9:30 Martin Schwidefsky
  2003-05-23  9:37 ` Christoph Hellwig
  0 siblings, 1 reply; 14+ messages in thread
From: Martin Schwidefsky @ 2003-05-23  9:30 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: Arnd Bergmann, Pete Zaitcev, linux-kernel


Hi Christoph,

> What is the z990 code drop?  Can you please merge support for new
> hardware into mainline instead of realsing it in these silly IBM
> patchkits for old kernels with exploitable security issues..

The z990 is the official name for the new mainframe machine. The z990
code drop contains the changes & new features for the new machine. The
IBM process forces us to publish the new features patches on developer
works first before we can think about integration into the mainline.
You may not like it but this is a restriction we as the s390 team at
IBM have to live with.

> Btw, what's the state of 2.4.21-rc3 vs s390(x)?
No too good. It basically works but there is a big bunch of patches
missing. I sent them to Marcelo for integration a few weeks ago but
to me Marcelo is a black hole. Never heard anything about it, not
even a "no". I sent Alan a copy of the patches adapted to his -ac
tree. He accepted most of it into rc2-ac2.

blue skies,
   Martin



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Patch to add SysRq handling to 3270 console
  2003-05-22 23:12 ` Arnd Bergmann
  2003-05-22 23:39   ` Pete Zaitcev
@ 2003-05-23  6:27   ` Christoph Hellwig
  1 sibling, 0 replies; 14+ messages in thread
From: Christoph Hellwig @ 2003-05-23  6:27 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: Pete Zaitcev, linux-kernel, schwidefsky

On Fri, May 23, 2003 at 01:12:20AM +0200, Arnd Bergmann wrote:
> duplicated work. Do you have a tested backport for 2.4.2x? If
> so, we could merge it for the z990 code drop.

What is the z990 code drop?  Can you please merge support for new
hardware into mainline instead of realsing it in these silly IBM
patchkits for old kernels with exploitable security issues..

Btw, what's the state of 2.4.21-rc3 vs s390(x)?

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Patch to add SysRq handling to 3270 console
  2003-05-22 23:12 ` Arnd Bergmann
@ 2003-05-22 23:39   ` Pete Zaitcev
  2003-05-23  6:27   ` Christoph Hellwig
  1 sibling, 0 replies; 14+ messages in thread
From: Pete Zaitcev @ 2003-05-22 23:39 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: Pete Zaitcev, linux-kernel, schwidefsky

> From: Arnd Bergmann <arnd@arndb.de>
> Date: Fri, 23 May 2003 01:12:20 +0200

> [...] Do you have a tested backport for 2.4.2x? If
> so, we could merge it for the z990 code drop.

It's attached to RH bug #91338. I append it to this mail.
I use 2.4.21-rc2-ac2, because pure Marcelo tree does not have
a recent s390 codebase. He has the old "char *ctrlchar_handle()"
still, and the patch won't apply.

-- Pete

diff -urN -X dontdiff linux-2.4.21-rc2-ac2/arch/s390/kernel/s390_ksyms.c linux-2.4.21-rc2-ac2-s390/arch/s390/kernel/s390_ksyms.c
--- linux-2.4.21-rc2-ac2/arch/s390/kernel/s390_ksyms.c	2003-05-16 18:07:35.000000000 -0700
+++ linux-2.4.21-rc2-ac2-s390/arch/s390/kernel/s390_ksyms.c	2003-05-22 13:55:52.000000000 -0700
@@ -10,6 +10,7 @@
 #include <asm/delay.h>
 #include <asm/setup.h>
 #include <asm/softirq.h>
+#include <asm/ctrlchar.h>
 #if CONFIG_IP_MULTICAST
 #include <net/arp.h>
 #endif
@@ -62,3 +63,5 @@
 EXPORT_SYMBOL(console_device);
 EXPORT_SYMBOL(pfix_table);
 EXPORT_SYMBOL_NOVERS(do_call_softirq);
+EXPORT_SYMBOL(ctrlchar_init);
+EXPORT_SYMBOL(ctrlchar_handle);
diff -urN -X dontdiff linux-2.4.21-rc2-ac2/arch/s390x/kernel/s390_ksyms.c linux-2.4.21-rc2-ac2-s390/arch/s390x/kernel/s390_ksyms.c
--- linux-2.4.21-rc2-ac2/arch/s390x/kernel/s390_ksyms.c	2003-05-21 18:11:37.000000000 -0700
+++ linux-2.4.21-rc2-ac2-s390/arch/s390x/kernel/s390_ksyms.c	2003-05-22 16:31:25.000000000 -0700
@@ -13,6 +13,7 @@
 #include <asm/pgalloc.h>
 #include <asm/setup.h>
 #include <asm/softirq.h>
+#include <asm/ctrlchar.h>
 #if CONFIG_IP_MULTICAST
 #include <net/arp.h>
 #endif
@@ -86,3 +87,5 @@
 EXPORT_SYMBOL(console_device);
 EXPORT_SYMBOL(pfix_table);
 EXPORT_SYMBOL_NOVERS(do_call_softirq);
+EXPORT_SYMBOL(ctrlchar_init);
+EXPORT_SYMBOL(ctrlchar_handle);
diff -urN -X dontdiff linux-2.4.21-rc2-ac2/drivers/s390/char/con3215.c linux-2.4.21-rc2-ac2-s390/drivers/s390/char/con3215.c
--- linux-2.4.21-rc2-ac2/drivers/s390/char/con3215.c	2003-05-21 18:11:57.000000000 -0700
+++ linux-2.4.21-rc2-ac2-s390/drivers/s390/char/con3215.c	2003-05-22 13:52:07.000000000 -0700
@@ -31,8 +31,7 @@
 #include <asm/cpcmd.h>
 #include <asm/irq.h>
 #include <asm/setup.h>
-
-#include "ctrlchar.h"
+#include <asm/ctrlchar.h>
 
 #define NR_3215		    1
 #define NR_3215_REQ	    (4*NR_3215)
@@ -474,7 +473,7 @@
 			if (count >= TTY_FLIPBUF_SIZE - tty->flip.count)
 				count = TTY_FLIPBUF_SIZE - tty->flip.count - 1;
 			EBCASC(raw->inbuf, count);
-			cchar = ctrlchar_handle(raw->inbuf, count, tty);
+			cchar = ctrlchar_handle(raw->inbuf, count, tty, 1);
 			switch (cchar & CTRLCHAR_MASK) {
 			case CTRLCHAR_SYSRQ:
 				break;
diff -urN -X dontdiff linux-2.4.21-rc2-ac2/drivers/s390/char/ctrlchar.c linux-2.4.21-rc2-ac2-s390/drivers/s390/char/ctrlchar.c
--- linux-2.4.21-rc2-ac2/drivers/s390/char/ctrlchar.c	2003-05-21 18:11:57.000000000 -0700
+++ linux-2.4.21-rc2-ac2-s390/drivers/s390/char/ctrlchar.c	2003-05-22 13:52:07.000000000 -0700
@@ -13,7 +13,7 @@
 #include <linux/ctype.h>
 #include <linux/interrupt.h>
 
-#include "ctrlchar.h"
+#include <asm/ctrlchar.h>
 
 #ifdef CONFIG_MAGIC_SYSRQ
 static int ctrlchar_sysrq_key;
@@ -52,7 +52,8 @@
  *         with CTRLCHAR_CTRL
  */
 unsigned int
-ctrlchar_handle(const unsigned char *buf, int len, struct tty_struct *tty)
+ctrlchar_handle(const unsigned char *buf, int len, struct tty_struct *tty,
+    int is_console)
 {
 	if ((len < 2) || (len > 3))
 		return CTRLCHAR_NONE;
@@ -64,7 +65,7 @@
 
 #ifdef CONFIG_MAGIC_SYSRQ
 	/* racy */
-	if (len == 3 && buf[1] == '-') {
+	if (is_console && len == 3 && buf[1] == '-') {
 		ctrlchar_sysrq_key = buf[2];
 		ctrlchar_tq.data = tty;
 		queue_task(&ctrlchar_tq, &tq_immediate);
diff -urN -X dontdiff linux-2.4.21-rc2-ac2/drivers/s390/char/ctrlchar.h linux-2.4.21-rc2-ac2-s390/drivers/s390/char/ctrlchar.h
--- linux-2.4.21-rc2-ac2/drivers/s390/char/ctrlchar.h	2003-05-21 18:11:57.000000000 -0700
+++ linux-2.4.21-rc2-ac2-s390/drivers/s390/char/ctrlchar.h	1969-12-31 16:00:00.000000000 -0800
@@ -1,21 +0,0 @@
-/*
- *  drivers/s390/char/ctrlchar.c
- *  Unified handling of special chars.
- *
- *    Copyright (C) 2001 IBM Deutschland Entwicklung GmbH, IBM Corporation
- *    Author(s): Fritz Elfert <felfert@millenux.com> <elfert@de.ibm.com>
- *
- */
-
-#include <linux/tty.h>
-
-extern unsigned int
-ctrlchar_handle(const unsigned char *buf, int len, struct tty_struct *tty);
-extern void ctrlchar_init(void);
-
-
-#define CTRLCHAR_NONE  (1 << 8)
-#define CTRLCHAR_CTRL  (2 << 8)
-#define CTRLCHAR_SYSRQ (3 << 8)
-
-#define CTRLCHAR_MASK (~0xffu)
diff -urN -X dontdiff linux-2.4.21-rc2-ac2/drivers/s390/char/sclp_tty.c linux-2.4.21-rc2-ac2-s390/drivers/s390/char/sclp_tty.c
--- linux-2.4.21-rc2-ac2/drivers/s390/char/sclp_tty.c	2003-05-21 18:11:57.000000000 -0700
+++ linux-2.4.21-rc2-ac2-s390/drivers/s390/char/sclp_tty.c	2003-05-22 13:52:07.000000000 -0700
@@ -17,8 +17,8 @@
 #include <linux/wait.h>
 #include <linux/slab.h>
 #include <asm/uaccess.h>
+#include <asm/ctrlchar.h>
 
-#include "ctrlchar.h"
 #include "sclp.h"
 #include "sclp_rw.h"
 #include "sclp_tty.h"
@@ -485,7 +485,7 @@
 	 */
 	if (sclp_tty == NULL)
 		return;
-	cchar = ctrlchar_handle(buf, count, sclp_tty);
+	cchar = ctrlchar_handle(buf, count, sclp_tty, 1);
 	switch (cchar & CTRLCHAR_MASK) {
 	case CTRLCHAR_SYSRQ:
 		break;
diff -urN -X dontdiff linux-2.4.21-rc2-ac2/drivers/s390/char/tubtty.c linux-2.4.21-rc2-ac2-s390/drivers/s390/char/tubtty.c
--- linux-2.4.21-rc2-ac2/drivers/s390/char/tubtty.c	2002-12-06 18:07:10.000000000 -0800
+++ linux-2.4.21-rc2-ac2-s390/drivers/s390/char/tubtty.c	2003-05-22 13:52:07.000000000 -0700
@@ -10,6 +10,7 @@
  *  Author:  Richard Hitt
  */
 #include <linux/config.h>
+#include <asm/ctrlchar.h>
 #include "tubio.h"
 
 /* Initialization & uninitialization for tubtty */
@@ -118,6 +119,8 @@
 	td->read_proc = tty3270_read_proc;
 	td->write_proc = tty3270_write_proc;
 
+	ctrlchar_init();
+
 	rc = tty_register_driver(td);
 	if (rc) {
 		printk(KERN_ERR "tty3270 registration failed with %d\n", rc);
@@ -875,23 +878,22 @@
 {
 	struct tty_struct *tty;
 	int func = -1;
+	int is_console = 0;
+	unsigned int cchar;
 
 	if ((tty = tubp->tty) == NULL)
 		return;
 	if (count < 0)
 		return;
-	if (count == 2 && (cp[0] == '^' || cp[0] == '\252')) {
-		switch(cp[1]) {
-		case 'c':  case 'C':
-			func = INTR_CHAR(tty);
-			break;
-		case 'd':  case 'D':
-			func = EOF_CHAR(tty);
-			break;
-		case 'z':  case 'Z':
-			func = SUSP_CHAR(tty);
-			break;
-		}
+#ifdef CONFIG_TN3270_CONSOLE
+	if (CONSOLE_IS_3270 && tub3270_con_tubp == tubp)
+		is_console = 1;
+#endif
+	cchar = ctrlchar_handle(cp, count, tty, is_console);
+	if ((cchar & CTRLCHAR_MASK) != CTRLCHAR_NONE) {
+		if ((cchar & CTRLCHAR_MASK) != CTRLCHAR_CTRL)
+			return;
+		func = cchar & 0xFF;
 	} else if (count == 2 && cp[0] == 0x1b) {        /* if ESC */
 		int inc = 0;
 		char buf[GEOM_INPLEN + 1];
diff -urN -X dontdiff linux-2.4.21-rc2-ac2/include/asm-s390/ctrlchar.h linux-2.4.21-rc2-ac2-s390/include/asm-s390/ctrlchar.h
--- linux-2.4.21-rc2-ac2/include/asm-s390/ctrlchar.h	1969-12-31 16:00:00.000000000 -0800
+++ linux-2.4.21-rc2-ac2-s390/include/asm-s390/ctrlchar.h	2003-05-22 13:52:07.000000000 -0700
@@ -0,0 +1,20 @@
+/*
+ *  Implemented in drivers/s390/char/ctrlchar.c
+ *  Unified handling of special chars.
+ *
+ *    Copyright (C) 2001 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Author(s): Fritz Elfert <felfert@millenux.com> <elfert@de.ibm.com>
+ *
+ */
+
+struct tty_struct;
+
+extern unsigned int ctrlchar_handle(const unsigned char *buf, int len,
+    struct tty_struct *tty, int is_console);
+extern void ctrlchar_init(void);
+
+#define CTRLCHAR_CTRL  (0 << 8)
+#define CTRLCHAR_NONE  (1 << 8)
+#define CTRLCHAR_SYSRQ (2 << 8)
+
+#define CTRLCHAR_MASK (~0xffu)
diff -urN -X dontdiff linux-2.4.21-rc2-ac2/include/asm-s390x/ctrlchar.h linux-2.4.21-rc2-ac2-s390/include/asm-s390x/ctrlchar.h
--- linux-2.4.21-rc2-ac2/include/asm-s390x/ctrlchar.h	1969-12-31 16:00:00.000000000 -0800
+++ linux-2.4.21-rc2-ac2-s390/include/asm-s390x/ctrlchar.h	2003-05-22 16:31:25.000000000 -0700
@@ -0,0 +1,20 @@
+/*
+ *  Implemented in drivers/s390/char/ctrlchar.c
+ *  Unified handling of special chars.
+ *
+ *    Copyright (C) 2001 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Author(s): Fritz Elfert <felfert@millenux.com> <elfert@de.ibm.com>
+ *
+ */
+
+struct tty_struct;
+
+extern unsigned int ctrlchar_handle(const unsigned char *buf, int len,
+    struct tty_struct *tty, int is_console);
+extern void ctrlchar_init(void);
+
+#define CTRLCHAR_CTRL  (0 << 8)
+#define CTRLCHAR_NONE  (1 << 8)
+#define CTRLCHAR_SYSRQ (2 << 8)
+
+#define CTRLCHAR_MASK (~0xffu)

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Patch to add SysRq handling to 3270 console
       [not found] <20030522225014$1daf@gated-at.bofh.it>
@ 2003-05-22 23:12 ` Arnd Bergmann
  2003-05-22 23:39   ` Pete Zaitcev
  2003-05-23  6:27   ` Christoph Hellwig
  0 siblings, 2 replies; 14+ messages in thread
From: Arnd Bergmann @ 2003-05-22 23:12 UTC (permalink / raw)
  To: Pete Zaitcev, linux-kernel, schwidefsky

Pete Zaitcev wrote:

> Matin et. al., please consider.
> 
> I am going to look into tub sleeping with spinlocks soonish,
> but please don't hold this patch for that problem.

Martin has started a major rewrite/cleanup of this driver
recently that I believe he wanted to send in one of his next
updates for 2.5.7x. Your patch looks good, but it is probably
duplicated work. Do you have a tested backport for 2.4.2x? If
so, we could merge it for the z990 code drop.

Martin, is the new driver in a state that you can send Pete
for reference?

        Arnd <><

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Patch to add SysRq handling to 3270 console
@ 2003-05-22 22:46 Pete Zaitcev
  0 siblings, 0 replies; 14+ messages in thread
From: Pete Zaitcev @ 2003-05-22 22:46 UTC (permalink / raw)
  To: linux390; +Cc: linux-kernel, Pete Zaitcev, Florian La Roche

The 3270 console is superior to 3215 in several respects:
- It shows brackets correctly
- It allows for passwords to be not echoed
- It permits full screen applications
- Its users do not need to hit Enter twice for every line

Its only deficiency was that SysRq was not implemented.
The attached patch rectifies that and allows to start
migration from 3215 for VM users.

Matin et. al., please consider.

I am going to look into tub sleeping with spinlocks soonish,
but please don't hold this patch for that problem.

Yours,
-- Pete

diff -urN -X dontdiff linux-2.5.69-bk12/arch/s390/kernel/s390_ksyms.c linux-2.5.69-bk12-s390/arch/s390/kernel/s390_ksyms.c
--- linux-2.5.69-bk12/arch/s390/kernel/s390_ksyms.c	2003-05-17 10:02:23.000000000 -0700
+++ linux-2.5.69-bk12-s390/arch/s390/kernel/s390_ksyms.c	2003-05-22 15:31:35.000000000 -0700
@@ -13,6 +13,7 @@
 #include <asm/delay.h>
 #include <asm/pgalloc.h>
 #include <asm/setup.h>
+#include <asm/ctrlchar.h>
 #ifdef CONFIG_IP_MULTICAST
 #include <net/arp.h>
 #endif
@@ -85,3 +86,5 @@
 EXPORT_SYMBOL(console_device);
 EXPORT_SYMBOL_NOVERS(do_call_softirq);
 EXPORT_SYMBOL(sys_wait4);
+EXPORT_SYMBOL(ctrlchar_init);
+EXPORT_SYMBOL(ctrlchar_handle);
diff -urN -X dontdiff linux-2.5.69-bk12/drivers/s390/char/con3215.c linux-2.5.69-bk12-s390/drivers/s390/char/con3215.c
--- linux-2.5.69-bk12/drivers/s390/char/con3215.c	2003-05-11 12:56:33.000000000 -0700
+++ linux-2.5.69-bk12-s390/drivers/s390/char/con3215.c	2003-05-22 13:57:25.000000000 -0700
@@ -32,8 +32,7 @@
 #include <asm/delay.h>
 #include <asm/cpcmd.h>
 #include <asm/setup.h>
-
-#include "ctrlchar.h"
+#include <asm/ctrlchar.h>
 
 #define NR_3215		    1
 #define NR_3215_REQ	    (4*NR_3215)
@@ -441,7 +440,7 @@
 			if (count >= TTY_FLIPBUF_SIZE - tty->flip.count)
 				count = TTY_FLIPBUF_SIZE - tty->flip.count - 1;
 			EBCASC(raw->inbuf, count);
-			cchar = ctrlchar_handle(raw->inbuf, count, tty);
+			cchar = ctrlchar_handle(raw->inbuf, count, tty, 1);
 			switch (cchar & CTRLCHAR_MASK) {
 			case CTRLCHAR_SYSRQ:
 				break;
diff -urN -X dontdiff linux-2.5.69-bk12/drivers/s390/char/ctrlchar.c linux-2.5.69-bk12-s390/drivers/s390/char/ctrlchar.c
--- linux-2.5.69-bk12/drivers/s390/char/ctrlchar.c	2003-03-24 14:01:49.000000000 -0800
+++ linux-2.5.69-bk12-s390/drivers/s390/char/ctrlchar.c	2003-05-22 13:57:25.000000000 -0700
@@ -13,7 +13,7 @@
 #include <linux/sysrq.h>
 #include <linux/ctype.h>
 
-#include "ctrlchar.h"
+#include <asm/ctrlchar.h>
 
 #ifdef CONFIG_MAGIC_SYSRQ
 static int ctrlchar_sysrq_key;
@@ -40,7 +40,8 @@
  *         with CTRLCHAR_CTRL
  */
 unsigned int
-ctrlchar_handle(const unsigned char *buf, int len, struct tty_struct *tty)
+ctrlchar_handle(const unsigned char *buf, int len, struct tty_struct *tty,
+    int is_console)
 {
 	if ((len < 2) || (len > 3))
 		return CTRLCHAR_NONE;
@@ -52,7 +53,7 @@
 
 #ifdef CONFIG_MAGIC_SYSRQ
 	/* racy */
-	if (len == 3 && buf[1] == '-') {
+	if (is_console && len == 3 && buf[1] == '-') {
 		ctrlchar_sysrq_key = buf[2];
 		ctrlchar_work.data = tty;
 		schedule_work(&ctrlchar_work);
diff -urN -X dontdiff linux-2.5.69-bk12/drivers/s390/char/ctrlchar.h linux-2.5.69-bk12-s390/drivers/s390/char/ctrlchar.h
--- linux-2.5.69-bk12/drivers/s390/char/ctrlchar.h	2003-03-24 14:01:46.000000000 -0800
+++ linux-2.5.69-bk12-s390/drivers/s390/char/ctrlchar.h	1969-12-31 16:00:00.000000000 -0800
@@ -1,20 +0,0 @@
-/*
- *  drivers/s390/char/ctrlchar.c
- *  Unified handling of special chars.
- *
- *    Copyright (C) 2001 IBM Deutschland Entwicklung GmbH, IBM Corporation
- *    Author(s): Fritz Elfert <felfert@millenux.com> <elfert@de.ibm.com>
- *
- */
-
-#include <linux/tty.h>
-
-extern unsigned int
-ctrlchar_handle(const unsigned char *buf, int len, struct tty_struct *tty);
-
-
-#define CTRLCHAR_NONE  (1 << 8)
-#define CTRLCHAR_CTRL  (2 << 8)
-#define CTRLCHAR_SYSRQ (3 << 8)
-
-#define CTRLCHAR_MASK (~0xffu)
diff -urN -X dontdiff linux-2.5.69-bk12/drivers/s390/char/sclp_tty.c linux-2.5.69-bk12-s390/drivers/s390/char/sclp_tty.c
--- linux-2.5.69-bk12/drivers/s390/char/sclp_tty.c	2003-05-11 12:56:33.000000000 -0700
+++ linux-2.5.69-bk12-s390/drivers/s390/char/sclp_tty.c	2003-05-22 13:57:45.000000000 -0700
@@ -17,8 +17,8 @@
 #include <linux/wait.h>
 #include <linux/slab.h>
 #include <asm/uaccess.h>
+#include <asm/ctrlchar.h>
 
-#include "ctrlchar.h"
 #include "sclp.h"
 #include "sclp_rw.h"
 #include "sclp_tty.h"
@@ -485,7 +485,7 @@
 	 */
 	if (sclp_tty == NULL)
 		return;
-	cchar = ctrlchar_handle(buf, count, sclp_tty);
+	cchar = ctrlchar_handle(buf, count, sclp_tty, 1);
 	switch (cchar & CTRLCHAR_MASK) {
 	case CTRLCHAR_SYSRQ:
 		break;
diff -urN -X dontdiff linux-2.5.69-bk12/drivers/s390/char/tubtty.c linux-2.5.69-bk12-s390/drivers/s390/char/tubtty.c
--- linux-2.5.69-bk12/drivers/s390/char/tubtty.c	2003-05-17 10:02:33.000000000 -0700
+++ linux-2.5.69-bk12-s390/drivers/s390/char/tubtty.c	2003-05-22 13:57:46.000000000 -0700
@@ -10,6 +10,7 @@
  *  Author:  Richard Hitt
  */
 #include <linux/config.h>
+#include <asm/ctrlchar.h>
 #include "tubio.h"
 
 /* Initialization & uninitialization for tubtty */
@@ -119,6 +120,8 @@
 	td->read_proc = tty3270_read_proc;
 	td->write_proc = tty3270_write_proc;
 
+	ctrlchar_init();
+
 	rc = tty_register_driver(td);
 	if (rc) {
 		printk(KERN_ERR "tty3270 registration failed with %d\n", rc);
@@ -865,23 +868,22 @@
 {
 	struct tty_struct *tty;
 	int func = -1;
+	int is_console = 0;
+	unsigned int cchar;
 
 	if ((tty = tubp->tty) == NULL)
 		return;
 	if (count < 0)
 		return;
-	if (count == 2 && (cp[0] == '^' || cp[0] == '\252')) {
-		switch(cp[1]) {
-		case 'c':  case 'C':
-			func = INTR_CHAR(tty);
-			break;
-		case 'd':  case 'D':
-			func = EOF_CHAR(tty);
-			break;
-		case 'z':  case 'Z':
-			func = SUSP_CHAR(tty);
-			break;
-		}
+#ifdef CONFIG_TN3270_CONSOLE
+	if (CONSOLE_IS_3270 && tub3270_con_tubp == tubp)
+		is_console = 1;
+#endif
+	cchar = ctrlchar_handle(cp, count, tty, is_console);
+	if ((cchar & CTRLCHAR_MASK) != CTRLCHAR_NONE) {
+		if ((cchar & CTRLCHAR_MASK) != CTRLCHAR_CTRL)
+			return;
+		func = cchar & 0xFF;
 	} else if (count == 2 && cp[0] == 0x1b) {        /* if ESC */
 		int inc = 0;
 		char buf[GEOM_INPLEN + 1];
diff -urN -X dontdiff linux-2.5.69-bk12/include/asm-s390/ctrlchar.h linux-2.5.69-bk12-s390/include/asm-s390/ctrlchar.h
--- linux-2.5.69-bk12/include/asm-s390/ctrlchar.h	1969-12-31 16:00:00.000000000 -0800
+++ linux-2.5.69-bk12-s390/include/asm-s390/ctrlchar.h	2003-05-22 13:57:46.000000000 -0700
@@ -0,0 +1,20 @@
+/*
+ *  Implemented in drivers/s390/char/ctrlchar.c
+ *  Unified handling of special chars.
+ *
+ *    Copyright (C) 2001 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ *    Author(s): Fritz Elfert <felfert@millenux.com> <elfert@de.ibm.com>
+ *
+ */
+
+struct tty_struct;
+
+extern unsigned int ctrlchar_handle(const unsigned char *buf, int len,
+    struct tty_struct *tty, int is_console);
+extern void ctrlchar_init(void);
+
+#define CTRLCHAR_CTRL  (0 << 8)
+#define CTRLCHAR_NONE  (1 << 8)
+#define CTRLCHAR_SYSRQ (2 << 8)
+
+#define CTRLCHAR_MASK (~0xffu)

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2003-06-02  8:36 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-05-23 11:30 Patch to add SysRq handling to 3270 console Martin Schwidefsky
  -- strict thread matches above, loose matches on Subject: below --
2003-06-02  8:44 Martin Schwidefsky
2003-06-02  8:43 Martin Schwidefsky
2003-05-27  9:07 Martin Schwidefsky
2003-05-27 18:35 ` Marcelo Tosatti
2003-05-27 23:27 ` Pete Zaitcev
2003-05-23  9:30 Martin Schwidefsky
2003-05-23  9:37 ` Christoph Hellwig
2003-05-26 18:50   ` Marcelo Tosatti
2003-05-26 19:14     ` Marcelo Tosatti
     [not found] <20030522225014$1daf@gated-at.bofh.it>
2003-05-22 23:12 ` Arnd Bergmann
2003-05-22 23:39   ` Pete Zaitcev
2003-05-23  6:27   ` Christoph Hellwig
2003-05-22 22:46 Pete Zaitcev

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).