linux_dsm_epyc7002/drivers
Alan Cox c65c9bc3ef tty: rewrite the ldisc locking
There are several pretty much unfixable races in the old ldisc code, especially
with respect to pty behaviour and also to hangup. It's easier to rewrite the
code than simply try and patch it up.

This patch
- splits the ldisc from the tty (so we will be able to refcount it more cleanly
  later)
- introduces a mutex lock for ldisc changing on an active device
- fixes the complete mess that hangup caused
- implements hopefully correct setldisc/close/hangup locking

There are still some problems around pty pairs that have always been there but
at least it is now possible to understand the code and fix further problems.

This fixes the following known bugs
- hang up can leak ldisc references
- hang up may not call open/close on ldisc in a matched way
- pty/tty pairs can deadlock during an ldisc change
- reading the ldisc proc files can cause every ldisc to be loaded

and probably a few other of the mysterious ldisc race reports.

I'm sure it also adds the odd new one.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-06-11 08:51:01 -07:00
..
accessibility
acpi cpumask: alloc zeroed cpumask for static cpumask_var_ts 2009-06-09 22:30:27 +09:30
amba
ata pata_netcell: Fix typo 2009-06-08 09:12:28 -07:00
atm
auxdisplay
base Driver Core: do not oops when driver_unregister() is called for unregistered drivers 2009-05-28 14:24:07 -07:00
block xen/blkfront: fix warning when deleting gendisk on unplug/shutdown 2009-05-19 08:27:42 +02:00
bluetooth tty: rewrite the ldisc locking 2009-06-11 08:51:01 -07:00
cdrom cdrom: beyond ARRAY_SIZE of viocd_diskinfo 2009-05-20 08:42:06 +02:00
char tty: rewrite the ldisc locking 2009-06-11 08:51:01 -07:00
clocksource
connector
cpufreq cpumask: alloc zeroed cpumask for static cpumask_var_ts 2009-06-09 22:30:27 +09:30
cpuidle
crypto Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2009-05-17 15:48:05 -07:00
dca
dio
dma Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2009-05-30 07:57:44 -07:00
edac edac: AMD8111 & AMD8131 Kconfig fixup 2009-05-29 08:40:03 -07:00
eisa
firewire
firmware
gpio
gpu Revert "drm: don't associate _DRM_DRIVER maps with a master" 2009-06-05 10:21:52 -07:00
hid HID: add NOGET quirk for devices from CH Products 2009-05-11 17:09:21 +02:00
hwmon hwmon: (lm78) Add missing __devexit_p() 2009-06-01 13:46:49 +02:00
i2c Merge branch 'i2c-for-2630-rc5' of git://aeryn.fluff.org.uk/bjdooks/linux 2009-05-12 11:21:51 -07:00
ide pdc202xx_old: fix resetproc() method 2009-06-07 13:52:50 +02:00
idle i7300_idle: allow testing on i5000-series hardware w/o re-compile 2009-05-28 20:52:40 -04:00
ieee1394
infiniband Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2009-05-13 16:31:12 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2009-05-29 08:48:25 -07:00
isdn gigaset: beyond ARRAY_SIZE of iwb->data 2009-05-21 15:04:15 -07:00
leds
lguest lguest: fix on Intel when KVM loaded (unhandled trap 13) 2009-05-26 12:13:11 -07:00
macintosh
mca
md md/raid5: fix bug in reshape code when chunk_size decreases. 2009-06-09 16:32:22 +10:00
media ivtv: Fix PCI DMA direction 2009-06-05 08:05:23 -07:00
memstick
message
mfd mfd: pcf50633: fix unsafe disable_irq() 2009-05-19 22:22:28 +02:00
misc [SCSI] ses: fix problems caused by empty SES provided name 2009-05-15 12:20:57 -04:00
mmc sdhci-of: Fix the wrong accessor to HOSTVER register 2009-06-03 21:56:22 +02:00
mtd mtd: davinci nand: update clock naming 2009-06-05 11:54:17 -07:00
net r8169: fix crash when large packets are received 2009-06-09 04:01:02 -07:00
nubus
of
oprofile
parisc
parport parport: quickfix the proc registration bug 2009-06-02 09:53:22 -07:00
pci PCI: use fixed-up device class when configuring device 2009-06-04 11:29:43 +01:00
pcmcia
platform eeepc-laptop: unregister_rfkill_notifier on failure 2009-05-14 11:28:27 -04:00
pnp
power
ps3
rapidio
regulator regulator: da903x: add missing __devexit_p() 2009-05-18 11:21:10 +01:00
rtc [ARM] 5519/1: amba probe: pass "struct amba_id *" instead of void * 2009-05-20 23:26:51 +01:00
s390
sbus
scsi [SCSI] mpt2sas: fix driver version inconsistency 2009-05-18 14:17:17 -05:00
serial 8250_pci: add the OXCB950 chip to the 8250 PCI driver. 2009-06-11 08:50:58 -07:00
sh
sn
spi pxa2xx_spi: prevent panic case setup() fails 2009-05-12 14:11:34 -07:00
ssb SSB: BCM47xx: Export ssb_watchdog_timer_set 2009-06-08 16:57:50 +01:00
staging Staging: comedi: David doesn't want to get comedi patches 2009-05-08 19:39:28 -07:00
tc
telephony
thermal thermal: fix off-by-1 error in trip point trigger condition 2009-05-14 13:40:53 -04:00
uio
usb tty: Clean up the ACM driver to CodingStyle 2009-06-11 08:50:58 -07:00
uwb
video atmel_lcdfb: correct fifo size for some products 2009-05-29 08:40:03 -07:00
virtio
w1
watchdog
xen
zorro
Kconfig
Makefile