linux/drivers/s390/char
Christian Borntraeger 59eb1ca7a8 [S390] sclp_vt220: Fix vt220 initialization
There are two problems in the vt220 intialization:

o Currently the vt220 console looses early printk events until the
  the vt220 tty is registered.
o console should work if tty_register fails

sclp_vt220_con_init calls __sclp_vt220_init and register_console.
It does not register the driver with the sclp core code via
sclp_register. That results in an sclp_send_mask=0. Therefore,
__sclp_vt220_emit will reject buffers with EIO. Unfortunately
register_console will cause the printk buffer to be sent to the
console and, therefore, every early message gets dropped. The
sclp_send_mask is set later during boot, when sclp_vt220_tty_init
calls sclp_register.

The solution is to move the sclp_register call from sclp_vt220_tty_init
to __sclp_vt220_init. This makes sure that the console is properly
registered with the sclp subsystem before the first log buffer messages
are passed to the vt220 console.

We also adopt the cleanup on error to keep the console alive if
tty_register fails.

Thanks to Peter Oberparleiter and Heiko Carstens for review and ideas
for improvement.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2008-02-09 18:24:39 +01:00
..
con3215.c [S390] 3215: Handle special console device. 2007-10-12 16:13:11 +02:00
con3270.c [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
ctrlchar.c
ctrlchar.h
defkeymap.c unicode diacritics support 2007-10-17 08:42:52 -07:00
defkeymap.map
fs3270.c [PATCH] mark struct file_operations const 5 2007-02-12 09:48:45 -08:00
Kconfig [S390] sclp: kill unused SCLP config option. 2007-07-27 12:29:18 +02:00
keyboard.c unicode diacritics support 2007-10-17 08:42:52 -07:00
keyboard.h unicode diacritics support 2007-10-17 08:42:52 -07:00
Makefile [S390] sclp: convert channel path configure code to use sync interface. 2008-01-26 14:11:10 +01:00
monreader.c [S390] monreader inlining cleanup. 2007-05-10 15:45:51 +02:00
monwriter.c [S390] drivers/s390: Add missing "space" 2008-01-26 14:11:19 +01:00
raw3270.c [S390] use LIST_HEAD instead of LIST_HEAD_INIT 2008-01-26 14:11:21 +01:00
raw3270.h
sclp_cmd.c [S390] Get rid of additional_cpus kernel parameter. 2008-01-26 14:11:15 +01:00
sclp_con.c
sclp_config.c cpu-hotplug: replace lock_cpu_hotplug() with get_online_cpus() 2008-01-25 21:08:02 +01:00
sclp_cpi_sys.c [S390] sclp: sysfs interface for SCLP cpi 2008-01-26 14:11:08 +01:00
sclp_cpi_sys.h [S390] sclp: sysfs interface for SCLP cpi 2008-01-26 14:11:08 +01:00
sclp_cpi.c [S390] sclp: sysfs interface for SCLP cpi 2008-01-26 14:11:08 +01:00
sclp_quiesce.c [S390] sclp: fix coding style. 2007-04-27 16:01:45 +02:00
sclp_rw.c [S390] drivers/s390/: Spelling fixes 2008-01-26 14:11:26 +01:00
sclp_rw.h
sclp_sdias.c [S390] Avoid sparse warnings. 2007-05-10 15:45:52 +02:00
sclp_tty.c [S390] sclp_tty/sclp_vt220: Fix scheduling while atomic 2008-02-05 16:51:00 +01:00
sclp_tty.h
sclp_vt220.c [S390] sclp_vt220: Fix vt220 initialization 2008-02-09 18:24:39 +01:00
sclp.c [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
sclp.h [S390] Standby cpu activation/deactivation. 2008-01-26 14:11:09 +01:00
tape_34xx.c Fixup rq_for_each_segment() indentation 2007-10-10 09:25:56 +02:00
tape_3590.c [S390] drivers/s390/: Spelling fixes 2008-01-26 14:11:26 +01:00
tape_3590.h [S390] tape: New read configuration data. 2007-05-04 18:48:26 +02:00
tape_block.c blk_end_request: changing s390 (take 4) 2008-01-28 10:36:54 +01:00
tape_char.c [PATCH] mark struct file_operations const 5 2007-02-12 09:48:45 -08:00
tape_class.c [S390] struct class_device -> struct device conversion. 2007-10-22 12:52:48 +02:00
tape_class.h [S390] struct class_device -> struct device conversion. 2007-10-22 12:52:48 +02:00
tape_core.c [S390] use LIST_HEAD instead of LIST_HEAD_INIT 2008-01-26 14:11:21 +01:00
tape_proc.c [S390] constify function pointer tables. 2008-01-26 14:11:32 +01:00
tape_std.c [S390] tape: Compression overwrites crypto setting 2007-03-05 23:35:47 +01:00
tape_std.h
tape.h [BLOCK] Get rid of request_queue_t typedef 2007-07-24 09:28:11 +02:00
tty3270.c [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
tty3270.h [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
vmcp.c [S390] vmcp cleanup 2007-07-17 13:36:19 +02:00
vmcp.h [S390] vmcp cleanup 2007-07-17 13:36:19 +02:00
vmlogrdr.c [S390] drivers/s390: Add missing "space" 2008-01-26 14:11:19 +01:00
vmur.c [S390] constify function pointer tables. 2008-01-26 14:11:32 +01:00
vmur.h [S390] vmur: fix reference counting for vmur device structure 2007-08-22 13:51:48 +02:00
vmwatchdog.c [S390] vmwatchdog: fix broken inline assembly. 2007-10-12 16:13:10 +02:00
zcore.c [S390] constify function pointer tables. 2008-01-26 14:11:32 +01:00