linux/drivers/video
Jaya Kumar f31ad92f34 fbdev: bugfix for multiprocess defio
This patch is a bugfix for how defio handles multiple processes manipulating
the same framebuffer.

Thanks to Bernard Blackham for identifying this bug.

It occurs when two applications mmap the same framebuffer and concurrently
write to the same page.  Normally, this doesn't occur since only a single
process mmaps the framebuffer.  The symptom of the bug is that the mapping
applications will hang.  The cause is that defio incorrectly tries to add the
same page twice to the pagelist.  The solution I have is to walk the pagelist
and check for a duplicate before adding.  Since I needed to walk the pagelist,
I now also keep the pagelist in sorted order.

Signed-off-by: Jaya Kumar <jayakumar.lkml@gmail.com>
Cc: Bernard Blackham <bernard@largestprime.net>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-07-12 14:33:41 -07:00
..
aty fbdev: fix integer as NULL pointer warning 2008-05-23 08:11:07 -07:00
backlight
console fbcon: fix wrong vmode bits copied on console switch 2008-06-06 11:29:11 -07:00
display fbdev: fix race in device_create 2008-05-20 13:31:53 -07:00
geode fix "lxfb: extend PLL table to support dotclocks below 25 MHz" 2008-05-14 19:11:13 -07:00
i810
intelfb
kyro
logo video/logo: add support for Blackfin/Linux logo for framebuffer console 2008-05-14 19:11:14 -07:00
matrox fbdev: fix integer as NULL pointer warning 2008-05-23 08:11:07 -07:00
mbx
nvidia
omap
pnx4008 drivers/video/pnx4008: eliminate double free 2008-05-13 08:02:24 -07:00
riva
savage
sis fbdev: fix integer as NULL pointer warning 2008-05-23 08:11:07 -07:00
vermilion
68328fb.c
acornfb.c
acornfb.h
am200epd.c
amba-clcd.c
amifb.c m68k: Return -ENODEV if no device is found 2008-05-18 13:28:50 -07:00
arcfb.c
arkfb.c
asiliantfb.c
atafb.c
atafb.h
atafb_iplan2p2.c
atafb_iplan2p4.c
atafb_iplan2p8.c
atafb_mfb.c
atafb_utils.h
atmel_lcdfb.c atmel_lcdfb: fix pixclock divider calculation 2008-05-13 08:02:25 -07:00
au1100fb.c
au1100fb.h
au1200fb.c
au1200fb.h
bf54x-lq043fb.c
bfin-t350mcqb-fb.c
bt431.h
bt455.h
bw2.c sparc video: remove open boot prom code 2008-05-08 21:37:30 -07:00
c2p.c
c2p.h
cfbcopyarea.c
cfbfillrect.c
cfbimgblt.c
cg3.c sparc video: remove open boot prom code 2008-05-08 21:37:30 -07:00
cg6.c sparc video: remove open boot prom code 2008-05-08 21:37:30 -07:00
cg14.c sparc video: remove open boot prom code 2008-05-08 21:37:30 -07:00
chipsfb.c
cirrusfb.c drivers/video/cirrusfb: fix RAM address printk 2008-06-12 18:05:41 -07:00
clps711xfb.c
controlfb.c
controlfb.h
cyber2000fb.c
cyber2000fb.h
cyblafb.c
dnfb.c m68k: dnfb doesnt check for Apollo 2008-05-18 13:28:49 -07:00
edid.h
efifb.c
epson1355fb.c
fb_ddc.c
fb_defio.c fbdev: bugfix for multiprocess defio 2008-07-12 14:33:41 -07:00
fb_draw.h
fb_notify.c
fb_sys_fops.c
fbcmap.c
fbcvt.c
fbmem.c
fbmon.c
fbsysfs.c
ffb.c sparc video: remove open boot prom code 2008-05-08 21:37:30 -07:00
fm2fb.c
fsl-diu-fb.c Fix broken fix for fsl-diu-db 2008-07-08 12:51:08 -07:00
fsl-diu-fb.h
g364fb.c
gbefb.c
gxt4500.c
hecubafb.c
hgafb.c hgafb: resource management fix 2008-06-12 18:05:40 -07:00
hitfb.c
hpfb.c m68k: Return -ENODEV if no device is found 2008-05-18 13:28:50 -07:00
igafb.c
imacfb.c
imsttfb.c
imxfb.c
imxfb.h
Kconfig w100fb: do not depend on SHARPSL 2008-07-04 10:40:08 -07:00
leo.c sparc: get leo framebuffer working 2008-06-10 14:13:09 -07:00
macfb.c
macmodes.c
macmodes.h
Makefile
maxinefb.c
metronomefb.c
modedb.c fbdev: export symbol fb_mode_option 2008-06-06 11:29:12 -07:00
n411.c
neofb.c
offb.c
output.c
p9100.c sparc video: remove open boot prom code 2008-05-08 21:37:30 -07:00
platinumfb.c
platinumfb.h
pm2fb.c
pm3fb.c
pmag-aa-fb.c
pmag-ba-fb.c
pmagb-b-fb.c
ps3fb.c
pvr2fb.c
pxafb.c [ARM] 5117/1: pxafb: fix __devinit/exit annotations 2008-06-25 18:50:14 +01:00
pxafb.h pxafb: preliminary smart panel interface support 2008-04-30 08:29:32 -07:00
q40fb.c
s1d13xxxfb.c
s3c2410fb.c S3C2410: fix driver MODULE_ALIAS() 2008-05-24 09:56:13 -07:00
s3c2410fb.h S3C2410: clean out changelog header and tidy 2008-05-24 09:56:13 -07:00
s3fb.c
sa1100fb.c
sa1100fb.h
sbuslib.c sparc video: remove open boot prom code 2008-05-08 21:37:30 -07:00
sbuslib.h sparc video: remove open boot prom code 2008-05-08 21:37:30 -07:00
sgivwfb.c
skeletonfb.c
sm501fb.c SM501: reverse FPEN/VBIASEN flags behaviour 2008-05-24 09:56:12 -07:00
sstfb.c
sticore.h
stifb.c
sunxvr500.c sparc video: remove open boot prom code 2008-05-08 21:37:30 -07:00
sunxvr2500.c sparc video: remove open boot prom code 2008-05-08 21:37:30 -07:00
svgalib.c
syscopyarea.c
sysfillrect.c
sysimgblt.c
tcx.c sparc video: remove open boot prom code 2008-05-08 21:37:30 -07:00
tdfxfb.c
tgafb.c
tridentfb.c tridentfb: improve clock setting accuracy 2008-05-13 08:02:24 -07:00
uvesafb.c
valkyriefb.c
valkyriefb.h
vesafb.c
vfb.c
vga16fb.c
vgastate.c
vt8623fb.c
w100fb.c w100fb: add 80 MHz modeline 2008-07-04 10:40:08 -07:00
w100fb.h
xen-fbfront.c
xilinxfb.c