A patch is now available at http://www.utsglobal.com for the 3270 driver. It is the merge of five patches as follows: 0. Fix 3270 console reboot loop 1. Recognize 3270 control unit type 3174 2. Fix tubfs kmalloc()s 3. Dynamically get 3270 input buffer 4. Get colors right on 3270 devices Details of each patch are given below.
The patch is named patch-2.4.7-3270 and applies smoothly to the kernel tree built from SuSE kernel-source-2.4.7.SuSE-53.s390.rpm and RedHat kernel-2.4.9-37.src.rpm. To obtain this patch, go to www.utsglobal.com and click Products under Linux. Then scroll down and click GPL SOFTWARE. Click any DOWNLOAD link. Click "3270 Driver (patch 2.4.7)". Click through the GPL for a download screen. We do ask that you register and receive a password. Here's the diffstat: Documentation/s390/3270.ChangeLog | 28 +++ drivers/s390/char/tuball.c | 18 ++ drivers/s390/char/tubfs.c | 130 +++++++++++---- drivers/s390/char/tubio.h | 13 + drivers/s390/char/tubtty.c | 25 ++ drivers/s390/char/tubttybld.c | 322 ++++++++++++++++++++++++++------------ 6 files changed, 400 insertions(+), 136 deletions(-) Richard Hitt [EMAIL PROTECTED] PATCH DETAILS ------------- 0. Fix 3270 console reboot loop: In tubtty.c:tty3270_bh() avoid unconditional TUBLOCK(); it can hang the system on reboot. Instead use TUBTRYLOCK() and test device's ready and unready flags before proceeding. 1. Recognize 3270 control unit type 3174: This fix changes tuball.c to functionalize control-unit-type testing; the new function returns a boolean. Heretofore the driver has only recognized control unit type 327x; but 2074-connected tubes show up with type 3174. 2. Fix tubfs kmalloc()s: A recent patch (2.4.20-pre5-ac3) added a limit of 8192 to the kmalloc() length for fs3270_read() and fs3270_write(). This limit can be exceeded with oversize screen sizes (x3270 -oversize COLSxROWS). Patch 2 does this the right way, with Indirect Data Address Words and a maximum kmalloc() size of 0x800. 3. Dynamically get 3270 input buffer: Again with oversize screens, the buffer for the two-line input area may need to be larger than provided for. This patch dynamically acquires an area of the right size, after determining screen size. 4. Get colors right on 3270 devices: The ls(1) command typically colorizes filenames depending on their attributes; 3270 ESC processing to show these colors was broken and is fixed. Also, RedHat and SuSE bootup messages are tabbed and colored, and this fix makes them show up correctly on a 3270 console, when enabled. ESC sequence processing is fixed so that (1) a sequence may be gathered over multiple write() and put_char() calls and (2) the resulting 3270 order stream may be used as necessary across multiple write operations to the tube.
