android_kernel_motorola_sm6375/drivers/char
Repository files (latest commit first)
Filename Latest commit message Latest commit date
salina@us.ibm.com 221ba15173 Char: lp, protect LPGETSTATUS with port_mutex
The patch fixes a problem in the lp driver that can cause oopses as
follows:
process A:	calls lp_write, which in turn calls
		parport_ieee1284_write_compat, and that invokes
		parport_wait_peripheral
process B:	meanwhile does an ioctl(LPGETSTATUS), which call
		lp_release_parport when done. This function will set
		physport->cad = NULL.
process A:	parport_wait_peripheral tries to dereference
		physport->cad and dies

So, protect that code with the port_mutex in order to protect against
simultaneous calls to lp_read/lp_write.

Similar protection is probably required for ioctl(LPRESET)...

This patch was done by IBM a while back and we (at suse) have that
since at least 2004 in our repos. Let's make it upstream.

Signed-off-by: okir@suse.de
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-05-16 18:08:58 -07:00
..
agp drm/i915: Disable WC PTE updates to w/a buggy IOMMU on ILK 2013-02-20 00:21:49 +01:00
hw_random Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2013-05-02 14:53:12 -07:00
ipmi proc: Supply a function to remove a proc entry by PDE 2013-05-01 17:29:46 -04:00
mwave
pcmcia Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-02-26 20:16:07 -08:00
tpm TPM: Retry SaveState command in suspend path 2013-04-17 09:31:32 -05:00
xilinx_hwicap char: remove use of __devexit 2012-11-21 12:55:19 -08:00
apm-emulation.c
applicom.c applicom: use correct array offset 2013-03-15 12:23:48 -07:00
applicom.h
bfin-otp.c
bsr.c
ds1302.c
ds1620.c ds1620: single_open() leak 2013-05-05 00:11:29 -04:00
dsp56k.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
dtlk.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
efirtc.c rtc: single_open() leaks 2013-05-05 00:12:29 -04:00
generic_nvram.c
genrtc.c rtc: single_open() leaks 2013-05-05 00:12:29 -04:00
hangcheck-timer.c
hpet.c vm: convert HPET mmap to vm_iomap_memory() helper 2013-04-19 09:46:39 -07:00
i8k.c
Kconfig tty: Added a CONFIG_TTY option to allow removal of TTY 2013-01-18 16:15:27 -08:00
lp.c Char: lp, protect LPGETSTATUS with port_mutex 2013-05-16 18:08:58 -07:00
Makefile
mbcs.c char: remove use of __devinitconst 2012-11-21 12:55:19 -08:00
mbcs.h
mem.c aio: don't include aio.h in sched.h 2013-05-07 20:16:25 -07:00
misc.c drivers/char/misc.c:misc_register(): do not loop on misc_list unconditionally 2013-02-27 19:10:21 -08:00
mmtimer.c
msm_smd_pkt.c
mspec.c
nsc_gpio.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
nvram.c
nwbutton.c
nwbutton.h
nwflash.c
pc8736x_gpio.c pc8736x_gpio: use platform_device_unregister in pc8736x_gpio_cleanup() 2012-10-24 15:52:29 -07:00
ppdev.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
ps3flash.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
random.c lib/string_helpers: introduce generic string_unescape 2013-04-30 17:04:03 -07:00
raw.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
rtc.c
scx200_gpio.c
snsc.c
snsc.h
snsc_event.c
sonypi.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-02-26 20:16:07 -08:00
tb0219.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
tile-srom.c drivers: char: Use PTR_RET function 2013-03-25 13:18:11 -07:00
tlclk.c
toshiba.c
ttyprintk.c TTY: call tty_port_destroy in the rest of drivers 2012-11-15 17:20:58 -08:00
uv_mmtimer.c
virtio_console.c Lots of virtio work which wasn't quite ready for last merge window. Plus 2013-05-02 14:14:04 -07:00