linux/drivers
Matthias Goebl 00409bb045 [ISDN] i4l: 'NO CARRIER' message lost after ldisc flush
The ISDN tty layer doesn't produce a 'NO CARRIER' message after hangup.

I suppose it broke when tty_buffer_flush() has been added to
tty_ldisc_flush() in the commit below.

For isdn_tty_modem_result(RESULT_NO_CARRIER..) the
message inserted via isdn_tty_at_cout() -> tty_insert_flip_char()
is flushed immediately by tty_ldisc_flush() -> tty_buffer_flush().
More annoyingly, the audio abort sequence DLE-ETX is also lost.

This patch fixes only active audio connections, because I assume that nobody
changes the line discipline for audio.

For non-audio connections the problem remains.
Maybe we can remove the tty_ldisc_flush() in isdn_tty_modem_result()
at all because it's done at tty_close?

On Mon, May 07, 2007 at 04:05:57PM -0500, Paul Fulghum wrote:
> Flush the tty flip buffer when the line discipline
> input queue is flushed, including the user call
> tcflush(TCIFLUSH/TCIOFLUSH). This prevents unexpected
> stale data after a user application calls tcflush().
>
> Cc: Alan Cox <alan@lxorguk.org.uk>
> Cc: Antonino Ingargiola <tritemio@gmail.com>
> Signed-off-by: Paul Fulghum <paulkf@microgate.com>
>
> --- a/drivers/char/tty_io.c	2007-05-04 05:46:55.000000000 -0500
> +++ b/drivers/char/tty_io.c	2007-05-05 03:23:46.000000000 -0500
> @@ -1240,6 +1263,7 @@ void tty_ldisc_flush(struct tty_struct *
>  			ld->flush_buffer(tty);
>  		tty_ldisc_deref(ld);
>  	}
> +	tty_buffer_flush(tty);
[..]

Signed-off-by: Matthias Goebl <matthias.goebl@goebl.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-01-04 03:55:40 -08:00
..
acorn/char
acpi Pull bugzilla-9362 into release branch 2007-12-14 15:14:52 -05:00
amba
ata pata_hpt37x: Fix HPT374 detection 2007-12-19 14:29:01 -08:00
atm [ATM]: Spelling fixes 2007-12-20 14:05:37 -08:00
auxdisplay
base create /sys/.../power when CONFIG_PM is set 2007-11-28 13:53:53 -08:00
block Cleanup umem driver: fix most checkpatch warnings, conform to kernel 2007-12-18 08:29:28 +01:00
bluetooth
cdrom SG: audit of drivers that use blk_rq_map_sg() 2007-10-24 13:21:21 +02:00
char tty: fix logic change introduced by wait_event_interruptible_timeout() 2007-12-23 12:54:37 -08:00
clocksource
connector [CONNECTOR]: Return proper error code in cn_call_callback() 2008-01-04 03:55:37 -08:00
cpufreq drivers/cpufreq/cpufreq_stats.c section fix 2007-12-17 19:28:16 -08:00
cpuidle cpuidle: remove unused exports 2007-10-29 17:27:50 -04:00
crypto Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2007-12-27 21:45:01 -08:00
dca
dio
dma I/OAT: fix null device in call to dev_err() 2007-12-17 19:28:17 -08:00
edac i5000_edac: no need to __stringify() KBUILD_BASENAME 2007-11-14 18:45:41 -08:00
eisa
firewire firewire: OHCI 1.0 Isochronous Receive support 2007-12-10 21:55:19 +01:00
firmware
hid HID: Don't access input_dev->private directly 2007-10-31 13:30:35 +01:00
hwmon hwmon: (w83627ehf) Be more careful when changing VID input level 2008-01-03 07:33:31 -05:00
i2c i2c/isp1301_omap: Build fix 2007-12-12 13:45:25 +01:00
ide cmd64x: fix hwif->chipset setup 2007-12-24 15:23:44 +01:00
ieee1394 ieee1394: iso and async streams: s/g list fix 2007-11-04 14:31:16 +01:00
infiniband IB/srp: Fix list corruption/oops on module reload 2008-01-03 10:25:27 -08:00
input spi: use simplified spi_sync() calling convention 2007-12-05 09:21:19 -08:00
isdn [ISDN] i4l: 'NO CARRIER' message lost after ldisc flush 2008-01-04 03:55:40 -08:00
kvm KVM: SVM: Fix FPU leak while emulating clts 2007-11-27 15:38:18 +02:00
leds leds: Fix locomo LED driver oops 2007-12-31 23:11:11 +00:00
lguest virtio: fix module/device unloading 2007-11-19 11:20:42 +11:00
macintosh drivers/macintosh/via-pmu.c: Added a missing iounmap 2007-12-17 19:28:16 -08:00
mca
md dm crypt: use bio_add_page 2007-12-20 17:32:13 +00:00
media V4L/DVB (6876): ivtv: mspx4xx needs a longer i2c udelay 2007-12-24 08:07:36 -02:00
message i2o: debug messages corrected 2007-11-05 15:12:31 -08:00
mfd MFD: SM501 debug typo fix 2007-11-29 09:24:53 -08:00
misc ACPI: thinkpad-acpi: fix lenovo keymap for brightness 2007-12-13 21:59:59 -05:00
mmc sdhci: support JMicron JMB38x chips 2007-12-12 20:01:00 +01:00
mtd Eliminate pointless casts from void* in a few driver irq handlers. 2007-10-23 19:53:16 -04:00
net [CASSINI]: Bump driver version and release date. 2008-01-04 03:55:30 -08:00
nubus
of
oprofile oProfile: oops when profile_pc() returns ~0LU 2007-11-14 18:45:37 -08:00
parisc [PARISC] lba_pci: pci_claim_resources disabled expansion roms 2007-12-06 09:38:26 -08:00
parport parport: "dev->timeslice" is an unsigned long, not an int 2007-12-17 19:28:15 -08:00
pci [PCI] Do not enable CRS Software Visibility by default 2007-12-27 21:21:36 -08:00
pcmcia pcmcia: remove pxa2xx_lubbock build warning 2007-12-23 12:54:37 -08:00
pnp drivers/pnp/resource.c: Add missing pci_dev_put 2007-11-29 09:24:52 -08:00
power Merge git://git.infradead.org/battery-2.6 2007-10-22 19:20:52 -07:00
ps3 ps3: vuart: fix error path locking 2007-12-23 12:54:37 -08:00
rapidio
rtc rtc-at32ap700x: fix irq init oops 2007-12-17 19:28:15 -08:00
s390 [S390]: Fix use of skb after netif_rx 2007-12-11 02:45:29 -08:00
sbus [WATCHDOG] Sbus: cpwatchdog, remove SPIN_LOCK_UNLOCKED 2007-11-19 21:09:52 +00:00
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 2008-01-03 11:59:27 -08:00
serial [SERIAL]: Fix section mismatches in Sun serial console drivers. 2007-12-29 01:19:49 -08:00
sh superhyway: Handle device_register() retval properly. 2007-11-07 11:13:55 +09:00
sn
spi atmel_spi: reload RCR before TCR 2007-12-10 19:43:55 -08:00
ssb ssb: Fix PCMCIA-host lowlevel bus access 2007-11-10 22:01:53 -08:00
tc
telephony telephony: phonedev panics if unregistering device not registered [Bug 9266] 2007-11-05 15:12:33 -08:00
uio
usb USB: New device ID for the CP2101 driver 2007-12-22 23:14:33 -08:00
video ps3fb: Fix ps3fb free_irq() dev_id 2007-12-19 14:27:30 -08:00
virtio virtio: fix module/device unloading 2007-11-19 11:20:42 +11:00
w1 W1: fix memset size error 2007-11-14 18:45:36 -08:00
watchdog [WATCHDOG] add Nano 7240 driver 2007-12-04 16:48:06 +00:00
xen
zorro Amiga zorro bus: Add missing zorro_device_remove() 2007-11-26 19:15:31 -08:00
Kconfig Virtio interface 2007-10-23 15:49:54 +10:00
Makefile Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-10-23 16:37:29 -07:00