• Sven Schnelle's avatar
    s390/tty3270: convert lines during output · 9c138af9
    Sven Schnelle authored
    The length of the screen line is variable with the 3270 protocol.
    For each attribute (foreground, background color, highlighting etc)
    we need 3 bytes: the set attribute order, the attribute number, and
    the value of the attribute. This means that depending on screen content,
    we might end up 3*3 bytes addtional data for a single character.
    
    Allocating the maximum possible amount of memory is quite a lot, and
    we cannot easily extend the lines by allocating memory because we
    might get called from atomic context. Failing to extend the memory
    would also be bad as that would mean that we could miss kernel messages
    in oom conditions. Therefore move the conversion to a 3270 datastream
    to tty3270_update(), and use only single line buffer.
    Signed-off-by: default avatarSven Schnelle <svens@linux.ibm.com>
    Acked-by: default avatarHeiko Carstens <hca@linux.ibm.com>
    Tested-by: default avatarNiklas Schnelle <schnelle@linux.ibm.com>
    Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
    9c138af9
con3270.c 50.2 KB