kernel-ark/drivers/char
Paul Fulghum da965822ab [PATCH] tty reference count fix
Fix hole where tty structure can be released when reference count is non
zero.  Existing code can sleep without tty_sem protection between deciding
to release the tty structure (setting local variables tty_closing and
otty_closing) and setting TTY_CLOSING to prevent further opens.  An open
can occur during this interval causing release_dev() to free the tty
structure while it is still referenced.

This should fix bugzilla.kernel.org [Bug 6041] New: Unable to handle kernel
paging request

In Bug 6041, tty_open() oopes on accessing the tty structure it has
successfully claimed.  Bug was on SMP machine with the same tty being
opened and closed by multiple processes, and DEBUG_PAGEALLOC enabled.

Signed-off-by: Paul Fulghum <paulkf@microgate.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Jesper Juhl <jesper.juhl@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-02-14 16:09:33 -08:00
..
agp [AGPGART] 945GM support for agpgart 2006-01-19 16:19:35 -08:00
drm [PATCH] Remove "RV370 5B60 [Radeon X300 (PCIE)]" from DRI list 2006-02-13 11:14:45 -08:00
ftape ftape: remove some outdated information from Kconfig files 2006-01-15 01:57:47 +01:00
ip2 [PATCH] ip2main.c warning fixes 2006-02-03 08:32:10 -08:00
ipmi [PATCH] IPMI: fix issues reported by Coverity in ipmi_msghandler.c 2006-02-03 08:32:11 -08:00
mwave
pcmcia [PATCH] TTY layer buffering revamp 2006-01-10 08:01:59 -08:00
rio [PATCH] rio cleanups 2006-02-03 08:32:04 -08:00
tpm [PATCH] tpm: tpm_bios remove unused variable 2006-02-01 08:53:12 -08:00
watchdog [WATCHDOG] pcwd.c - update module version info 2006-02-12 14:46:48 +01:00
.gitignore
amiserial.c [PATCH] remove unused tmp_buf_sem's 2006-01-14 10:41:42 -08:00
applicom.c
applicom.h
cd1865.h
ChangeLog
consolemap.c
cp437.uni
cs5535_gpio.c [PATCH] i386: GPIO driver for AMD CS5535/CS5536 2006-01-10 08:01:24 -08:00
cyclades.c [PATCH] new tty buffering locking fix 2006-02-03 08:32:09 -08:00
decserial.c
defkeymap.c_shipped
defkeymap.map
digi1.h
digi.h
digiFep1.h
digiPCI.h
ds1286.c
ds1302.c
ds1620.c
dsp56k.c [PATCH] m68k: dsp56k __user annotations 2006-01-12 09:09:04 -08:00
dtlk.c
ec3104_keyb.c
efirtc.c
epca.c [PATCH] TTY layer buffering revamp 2006-01-10 08:01:59 -08:00
epca.h
epcaconfig.h
esp.c [PATCH] Fix locking error in esp 2006-02-14 10:01:39 -08:00
generic_nvram.c
generic_serial.c [PATCH] remove unused tmp_buf_sem's 2006-01-14 10:41:42 -08:00
genrtc.c
hangcheck-timer.c [PATCH] s390: hangcheck timer support 2006-02-01 08:53:24 -08:00
hpet.c
hvc_console.c [PATCH] TTY layer buffering revamp 2006-01-10 08:01:59 -08:00
hvc_vio.c
hvcs.c [PATCH] TTY layer buffering revamp 2006-01-10 08:01:59 -08:00
hvsi.c [PATCH] drivers/char: Use ARRAY_SIZE macro 2006-01-10 08:01:56 -08:00
hw_random.c
i8k.c
ip2.c
ip2main.c [PATCH] ip2main.c warning fixes 2006-02-03 08:32:10 -08:00
ip27-rtc.c
isicom.c [PATCH] char/isicom: More whitespaces and coding style 2006-01-10 08:02:01 -08:00
istallion.c [PATCH] TTY layer buffering revamp 2006-01-10 08:01:59 -08:00
ite_gpio.c
Kconfig [PATCH] synclink_gt is PCI-only 2006-02-08 01:04:50 -05:00
keyboard.c
lcd.c
lcd.h
lp.c
Makefile [PATCH] i386: GPIO driver for AMD CS5535/CS5536 2006-01-10 08:01:24 -08:00
mbcs.c
mbcs.h
mem.c [PATCH] powerpc: iSeries fixes for build with no PCI 2006-01-12 20:09:30 +11:00
misc.c
mmtimer.c
moxa.c [PATCH] moxa serial: add proper capability check 2006-01-10 09:45:36 -08:00
mxser.c [PATCH] TTY layer buffering revamp 2006-01-10 08:01:59 -08:00
mxser.h
n_hdlc.c [PATCH] n_hdlc.c: remove unused declaration 2006-01-10 08:02:00 -08:00
n_r3964.c [PATCH] TTY layer buffering revamp 2006-01-10 08:01:59 -08:00
n_tty.c [PATCH] TTY layer buffering revamp 2006-01-10 08:01:59 -08:00
nvram.c [PATCH] drivers/char: Use ARRAY_SIZE macro 2006-01-10 08:01:56 -08:00
nwbutton.c
nwbutton.h
nwflash.c
ppdev.c
pty.c [PATCH] TTY layer buffering revamp 2006-01-10 08:01:59 -08:00
qtronix.c
qtronixmap.c_shipped
qtronixmap.map
random.c [PATCH] random: get rid of sparse warning 2006-01-11 18:42:11 -08:00
raw.c
riscom8_reg.h
riscom8.c [PATCH] remove unused tmp_buf_sem's 2006-01-14 10:41:42 -08:00
riscom8.h
rocket_int.h
rocket.c [PATCH] Fix RocketPort driver 2006-02-03 08:31:59 -08:00
rocket.h
rtc.c [PATCH] Allow reading CMOS day of week register 2006-01-11 18:42:10 -08:00
s3c2410-rtc.c
scan_keyb.c
scan_keyb.h
scc.h [PATCH] m68k: static vs. extern in scc.h 2006-01-12 09:09:00 -08:00
scx200_gpio.c
selection.c [PATCH] TTY layer buffering revamp 2006-01-10 08:01:59 -08:00
ser_a2232.c [PATCH] missing include in ser_a2232 2006-02-07 20:57:25 -05:00
ser_a2232.h
ser_a2232fw.ax
ser_a2232fw.h
serial167.c [PATCH] remove unused tmp_buf_sem's 2006-01-14 10:41:42 -08:00
snsc_event.c
snsc.c
snsc.h
sonypi.c
specialix_io8.h
specialix.c [PATCH] remove unused tmp_buf_sem's 2006-01-14 10:41:42 -08:00
stallion.c return statement cleanup - kill pointless parentheses 2006-01-15 02:37:08 +01:00
sx.c [PATCH] sx.c printk warning fixes 2006-02-03 08:32:03 -08:00
sx.h
sxboards.h
sxwindow.h
synclink_gt.c [PATCH] synclink_gt fix size of register value storage 2006-01-18 19:20:16 -08:00
synclink.c [PATCH] remove unused tmp_buf_sem's 2006-01-14 10:41:42 -08:00
synclinkmp.c [PATCH] TTY layer buffering revamp 2006-01-10 08:01:59 -08:00
sysrq.c [PATCH] mutex subsystem, more debugging code 2006-01-09 15:59:21 -08:00
tb0219.c Update Yoichi Yuasa's email address. 2006-01-10 13:39:07 +00:00
tipar.c [PATCH] tipar fixes 2006-02-11 21:41:13 -08:00
tlclk.c [PATCH] tlclk driver update 2006-01-18 19:25:49 -08:00
toshiba.c
tty_io.c [PATCH] tty reference count fix 2006-02-14 16:09:33 -08:00
tty_ioctl.c
vc_screen.c
viocons.c [PATCH] powerpc: remove bitfields from HvLpEvent 2006-01-12 20:09:29 +11:00
viotape.c
vme_scc.c [PATCH] TTY layer buffering revamp 2006-01-10 08:01:59 -08:00
vr41xx_giu.c Update Yoichi Yuasa's email address. 2006-01-10 13:39:07 +00:00
vr41xx_rtc.c Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus 2006-01-10 09:00:55 -08:00
vt_ioctl.c
vt.c [PATCH] fbcon: Fix screen artifacts when moving cursor 2006-02-01 08:53:26 -08:00