linux/drivers/s390/char
Heiko Carstens d4820e44b0 [S390] sclp_vt220: fix scheduling while atomic bug.
The driver incorrectly assumed that putchar will only be called from
schedulable process context and therefore blocked and waited if no
free output buffers where available.
Since putchar may also be called from BH context this may lead to
deadlocks.
To fix this just return the number of characters accepted and let the
upper layer handle the rest.

The console write function will busy wait (sclp_sync_wait) until a
buffer is available again.

Cc: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2008-05-30 10:03:35 +02:00
..
con3215.c s390 tty: Prepare for put_char to return success/fail 2008-04-30 08:29:45 -07:00
con3270.c [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
ctrlchar.c [S390] workqueue fixes. 2006-12-08 15:53:52 +01:00
ctrlchar.h
defkeymap.c Build fix for drivers/s390/char/defkeymap.c 2008-03-04 08:01:26 -08: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] Remove code duplication from monreader / dcssblk. 2008-04-17 07:47:07 +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 [S390] Avoid excessive inlining. 2007-02-05 21:18:53 +01:00
sclp_config.c [S390] Fix section mismatch warnings. 2008-05-30 10:03:34 +02:00
sclp_cpi_sys.c [S390] sclp: clean up send/receive naming scheme 2008-02-19 15:29:34 +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] sclp: clean up send/receive naming scheme 2008-02-19 15:29:34 +01:00
sclp_rw.h
sclp_sdias.c [S390] Avoid sparse warnings. 2007-05-10 15:45:52 +02:00
sclp_tty.c s390 tty: Prepare for put_char to return success/fail 2008-04-30 08:29:45 -07:00
sclp_tty.h
sclp_vt220.c [S390] sclp_vt220: fix scheduling while atomic bug. 2008-05-30 10:03:35 +02:00
sclp.c [S390] sclp: clean up send/receive naming scheme 2008-02-19 15:29:34 +01:00
sclp.h [S390] sclp: clean up send/receive naming scheme 2008-02-19 15:29:34 +01:00
tape_34xx.c [S390] replace remaining __FUNCTION__ occurrences 2008-04-17 07:47:04 +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 [S390] tape: Fix race condition in tape block device driver 2008-05-30 10:03:33 +02:00
tape_char.c [S390] tape: duplicate sysfs filename when setting tape device online 2008-04-17 07:46:59 +02:00
tape_class.c [S390] tape: duplicate sysfs filename when setting tape device online 2008-04-17 07:46:59 +02:00
tape_class.h [S390] tape: duplicate sysfs filename when setting tape device online 2008-04-17 07:46:59 +02:00
tape_core.c [S390] tape: Use ccw_dev_id to build cdev_id. 2008-05-15 16:52:40 +02:00
tape_proc.c s390: use non-racy method for proc entries creation 2008-04-29 08:06:21 -07: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] tty3270: fix put_char fail/success conversion. 2008-05-07 09:23:02 +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: fix race in device_create 2008-05-20 13:31:56 -07:00
vmur.c [S390] vmur: Use wait queue instead of mutex to serialize open 2008-04-17 07:46:59 +02:00
vmur.h [S390] vmur: Use wait queue instead of mutex to serialize open 2008-04-17 07:46:59 +02:00
vmwatchdog.c [S390] replace remaining __FUNCTION__ occurrences 2008-04-17 07:47:04 +02:00
zcore.c [S390] replace remaining __FUNCTION__ occurrences 2008-04-17 07:47:04 +02:00