linux/drivers/video
Linus Torvalds c47747fde9 fbmem: make read/write/ioctl use the frame buffer at open time
read/write/ioctl on a fbcon file descriptor has traditionally used the
fbcon not when it was opened, but as it was at the time of the call.
That makes no sense, but the lack of sense is much more obvious now that
we properly ref-count the usage - it means that the ref-counting doesn't
actually protect operations we do on the frame buffer.

This changes it to look at the fb_info that we got at open time, but in
order to avoid using a frame buffer long after it has been unregistered,
we do verify that it is still current, and return -ENODEV if not.

Acked-by: Tim Gardner <tim.gardner@canonical.com>
Tested-by: Daniel J Blueman <daniel.blueman@gmail.com>
Tested-by: Anca Emanuel <anca.emanuel@gmail.com>
Cc: Bruno Prémont <bonbons@linux-vserver.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Andy Whitcroft <andy.whitcroft@canonical.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-05-12 07:46:43 -07:00
..
aty Fix common misspellings 2011-03-31 11:26:23 -03:00
backlight Fix common misspellings 2011-03-31 11:26:23 -03:00
console Merge branch 'fbdev-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6 2011-04-07 12:49:17 -07:00
display Fix common misspellings 2011-03-31 11:26:23 -03:00
geode Fix common misspellings 2011-03-31 11:26:23 -03:00
i810 Fix common misspellings 2011-03-31 11:26:23 -03:00
intelfb video: change to new flag variable 2011-03-17 14:05:35 +01:00
kyro Fix common misspellings 2011-03-31 11:26:23 -03:00
logo fbdev: move logo externs to header file 2009-06-16 19:47:57 -07:00
matrox Fix common misspellings 2011-03-31 11:26:23 -03:00
mb862xx dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00
mbx llseek: automatically add .llseek fop 2010-10-15 15:53:27 +02:00
msm msm: mdp: Set the correct pack pattern for XRGB/ARGB 2011-03-08 11:54:46 -08:00
nvidia backlight: add backlight type 2011-03-22 17:43:59 -07:00
omap Fix common misspellings 2011-03-31 11:26:23 -03:00
omap2 Fix common misspellings 2011-03-31 11:26:23 -03:00
pnx4008 include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
riva backlight: add backlight type 2011-03-22 17:43:59 -07:00
savage Merge branch 'fbdev-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6 2011-04-07 12:49:17 -07:00
sis sisfb: add support for XGI Z9 DDR2 POST 2011-03-22 15:21:01 +09:00
vermilion vmlfb: use list_move() instead of list_del()/list_add() combination 2011-03-22 15:13:38 +09:00
via Merge branch 'fbdev-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6 2011-04-07 12:49:17 -07:00
68328fb.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
acornfb.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
acornfb.h
amba-clcd.c Merge branches 'fixes', 'pgt-next' and 'versatile' into devel 2011-03-20 09:32:12 +00:00
amifb.c m68k: amiga - Frame buffer platform device conversion 2010-05-17 21:37:43 +02:00
arcfb.c Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
arkfb.c arkfb: Compute VGA base iomem pointer explicitly. 2011-03-22 15:47:55 +09:00
asiliantfb.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
atafb_iplan2p2.c
atafb_iplan2p4.c
atafb_iplan2p8.c
atafb_mfb.c
atafb_utils.h
atafb.c fbdev: atafb - Remove undead ifdef ATAFB_FALCON 2010-10-22 09:43:25 +02:00
atafb.h
atmel_lcdfb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
au1100fb.c VIDEO: Au1100fb: Fix section mismatch 2010-07-26 19:08:15 +01:00
au1100fb.h
au1200fb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
au1200fb.h
bf54x-lq043fb.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
bf537-lq035.c drivers/video/bf537-lq035.c: Add missing IS_ERR test 2011-01-25 15:09:24 +09:00
bfin_adv7393fb.c fbdev: bfin_adv7393fb: new Blackfin ADV7393 driver 2010-11-26 15:06:39 +09:00
bfin_adv7393fb.h Fix common misspellings 2011-03-31 11:26:23 -03:00
bfin-lq035q1-fb.c drivers/video/bfin-lq035q1-fb.c: introduce missing kfree 2011-04-06 09:44:57 -07:00
bfin-t350mcqb-fb.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
broadsheetfb.c broadsheetfb: support storing waveform 2010-03-12 15:52:34 -08:00
bt431.h
bt455.h
bw2.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00
c2p_core.h
c2p_iplan2.c
c2p_planar.c
c2p.h
carminefb_regs.h
carminefb.c drivers/video/carminefb.c: improve error handling 2011-01-06 15:46:56 +09:00
carminefb.h
cfbcopyarea.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
cfbfillrect.c fbdev: fix fillrect for 24bpp modes 2009-05-06 16:36:10 -07:00
cfbimgblt.c
cg3.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00
cg6.c video: add missing framebuffer_release in error path 2011-03-22 16:35:44 +09:00
cg14.c video: add missing framebuffer_release in error path 2011-03-22 16:35:44 +09:00
chipsfb.c console: rename acquire/release_console_sem() to console_lock/unlock() 2011-01-26 10:50:06 +10:00
cirrusfb.c m68k: amiga - Zorro bus modalias support 2010-05-17 21:37:41 +02:00
clps711xfb.c clps711xfb: convert to proc_fops 2009-12-16 07:20:04 -08:00
cobalt_lcdfb.c cocbalt_lcdfb: correct sections 2010-05-03 15:42:58 +02:00
controlfb.c of/address: Clean up function declarations 2010-08-01 01:42:42 -06:00
controlfb.h
cyber2000fb.c VIDEO: cyberpro: remove unused cyber2000fb_get_fb_var() 2011-02-11 10:16:07 +00:00
cyber2000fb.h VIDEO: cyberpro: remove unused cyber2000fb_get_fb_var() 2011-02-11 10:16:07 +00:00
da8xx-fb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
dnfb.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
edid.h video: Fix EDID macros H_SYNC_WIDTH and H_SYNC_OFFSET 2011-03-22 16:45:03 +09:00
efifb.c efifb: Add override for 11" Macbook Air 3,1 2011-04-06 10:58:10 -07:00
ep93xx-fb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
epson1355fb.c Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
fb_ddc.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
fb_defio.c workqueue: convert cancel_rearming_delayed_work[queue]() users to cancel_delayed_work_sync() 2010-12-15 10:56:11 +01:00
fb_draw.h fbdev: fix fillrect for 24bpp modes 2009-05-06 16:36:10 -07:00
fb_notify.c
fb_sys_fops.c
fb-puv3.c unicore32 framebuffer fix: get videomemory by __get_free_pages() and make it floatable 2011-04-02 16:17:38 +08:00
fbcmap.c framebuffer: fix fbcmap.c kernel-doc warning 2010-11-26 15:05:08 +09:00
fbcvt.c Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
fbmem.c fbmem: make read/write/ioctl use the frame buffer at open time 2011-05-12 07:46:43 -07:00
fbmon.c fbdev: when parsing E-EDID blocks, also use SVD entries 2010-11-15 14:52:23 +09:00
fbsysfs.c Fix common misspellings 2011-03-31 11:26:23 -03:00
ffb.c video: ffb: fix ffb_probe error path 2011-03-22 16:18:51 +09:00
fm2fb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
fsl-diu-fb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
g364fb.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
gbefb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
gxt4500.c
hecubafb.c video: hecubafb: add __devexit_p around reference to hecubafb_remove 2011-03-22 16:34:28 +09:00
hgafb.c video: Fix the HGA framebuffer driver 2011-01-06 15:48:13 +09:00
hitfb.c hitfb: fix sections 2010-05-25 08:07:09 -07:00
hpfb.c video: hpfb: use resource_size() 2011-03-22 16:07:32 +09:00
igafb.c drivers/video/igafb.c: make igafb_setup() and igafb_init() static 2010-08-11 08:59:12 -07:00
imsttfb.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
imxfb.c backlight: add backlight type 2011-03-22 17:43:59 -07:00
jz4740_fb.c console: rename acquire/release_console_sem() to console_lock/unlock() 2011-01-26 10:50:06 +10:00
Kconfig Merge branch 'devel-stable' of master.kernel.org:/home/rmk/linux-2.6-arm 2011-03-17 19:08:06 -07:00
leo.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00
macfb.c macfb: fix 24-bit visual and stuff 2010-02-27 18:31:16 +01:00
macmodes.c fbdev: add some missing mac modes 2010-02-27 18:31:14 +01:00
macmodes.h
Makefile Merge branch 'devel-stable' of master.kernel.org:/home/rmk/linux-2.6-arm 2011-03-17 19:08:06 -07:00
maxinefb.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
metronomefb.c video: metronomefb: add __devexit_p around reference to metronomefb_remove 2011-03-22 16:34:33 +09:00
modedb.c video: tidy up modedb formatting. 2011-01-12 14:57:52 +09:00
mx3fb.c console: rename acquire/release_console_sem() to console_lock/unlock() 2011-01-26 10:50:06 +10:00
mxsfb.c video: Add i.MX23/28 framebuffer driver 2011-03-07 19:29:30 +01:00
n411.c
neofb.c
nuc900fb.c video: nuc900fb: properly free resources in nuc900fb_remove 2011-01-18 13:38:06 +09:00
nuc900fb.h Fix common misspellings 2011-03-31 11:26:23 -03:00
offb.c of/address: Clean up function declarations 2010-08-01 01:42:42 -06:00
output.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
p9100.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00
platinumfb.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00
platinumfb.h
pm2fb.c tree-wide: s/widht/width/g typo in comments 2010-02-05 12:22:42 +01:00
pm3fb.c
pmag-aa-fb.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pmag-ba-fb.c VIDEO: PMAG-BA: Fix section mismatch 2010-07-26 19:08:14 +01:00
pmagb-b-fb.c VIDEO: PMAGB-B: Fix section mismatch 2010-07-26 19:08:15 +01:00
ps3fb.c console: rename acquire/release_console_sem() to console_lock/unlock() 2011-01-26 10:50:06 +10:00
pvr2fb.c sh: Fix up more 64-bit pgprot truncation on SH-X2 TLB. 2010-02-17 13:23:00 +09:00
pxa3xx-gcu.c Fix common misspellings 2011-03-31 11:26:23 -03:00
pxa3xx-gcu.h video: add driver for PXA3xx 2D graphics accelerator 2010-12-16 14:31:18 +08:00
pxa168fb.c video: pxa168fb: remove a redundant pxa168fb_check_var call 2011-01-25 15:09:19 +09:00
pxa168fb.h fb: add support of LCD display controller on pxa168/910 (base layer) 2009-06-13 00:09:09 +08:00
pxafb.c ARM: pxafb: Fix access to nonexistent member of pxafb_info 2011-04-12 23:07:42 +08:00
pxafb.h ARM: pxafb: rework pxafb overlay memory management 2011-03-16 17:37:03 +08:00
q40fb.c fbdev/m68k: Fix section mismatches in q40fb.c 2010-10-22 09:43:25 +02:00
s1d13xxxfb.c s1d13xxxfb: drop unused code 2010-12-21 01:05:43 +09:00
s3c2410fb.c s3c2410fb: don't treat NULL clk as an error 2011-01-12 15:00:31 +09:00
s3c2410fb.h s3c-fb: CPUFREQ frequency scaling support 2009-06-16 19:47:59 -07:00
s3c-fb.c video: s3c-fb: fix checkpatch errors and warning 2011-04-06 09:44:57 -07:00
s3fb.c s3fb: fix Virge/GX2 2011-03-31 13:48:58 +09:00
sa1100fb.c platform-drivers: move probe to .devinit.text in drivers/video 2010-03-07 17:04:50 -08:00
sa1100fb.h sa1100fb: fix color component length for pseudocolor modes 2009-04-13 15:04:29 -07:00
sbuslib.c
sbuslib.h
sgivwfb.c sgivwfb: fix sections 2010-05-25 08:07:09 -07:00
sh7760fb.c video: sh7760fb: use resource_size() 2011-03-22 16:07:35 +09:00
sh_mipi_dsi.c fbdev: sh_mipi_dsi: use platform provided register layout and values 2011-01-05 17:22:32 +09:00
sh_mobile_hdmi.c console: rename acquire/release_console_sem() to console_lock/unlock() 2011-01-26 10:50:06 +10:00
sh_mobile_lcdcfb.c Merge branch 'common/fbdev' of master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6 2011-03-29 16:06:21 +09:00
sh_mobile_lcdcfb.h Merge branch 'common/fbdev' of master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6 2011-03-29 16:06:21 +09:00
skeletonfb.c fbdev: fix color component field length documentation 2009-04-13 15:04:29 -07:00
sm501fb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
sstfb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
sticore.h Fix common misspellings 2011-03-31 11:26:23 -03:00
stifb.c tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
sunxvr500.c Merge branch 'master' into export-slabh 2010-04-05 11:37:28 +09:00
sunxvr1000.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00
sunxvr2500.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
svgalib.c svga: Make svga_set_timings() take an iomem regbase pointer. 2011-03-22 15:47:22 +09:00
syscopyarea.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sysfillrect.c fbdev: fix fillrect for 24bpp modes 2009-05-06 16:36:10 -07:00
sysimgblt.c
tcx.c video: add missing framebuffer_release in error path 2011-03-22 16:35:44 +09:00
tdfxfb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
tgafb.c fix typos concerning "initiali[zs]e" 2010-06-16 18:05:05 +02:00
tmiofb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
tridentfb.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
udlfb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
uvesafb.c uvesafb,vesafb: create WC or WB PAT-entries 2011-03-22 16:20:44 +09:00
valkyriefb.c valkyriefb: various fixes 2010-02-27 18:31:13 +01:00
valkyriefb.h valkyriefb: various fixes 2010-02-27 18:31:13 +01:00
vesafb.c uvesafb,vesafb: create WC or WB PAT-entries 2011-03-22 16:20:44 +09:00
vfb.c fbdev: section cleanup in vfb 2010-05-25 08:07:08 -07:00
vga16fb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
vgastate.c
vt8500lcdfb.c fbdev: Implement simple blanking in pseudocolor modes for vt8500lcdfb 2011-01-13 13:07:41 +09:00
vt8500lcdfb.h ARM: Add support for the display controllers in VT8500 and WM8505 2010-11-09 18:52:07 +09:00
vt8623fb.c vt8623fb: Compute VGA base iomem pointer explicitly. 2011-03-22 15:47:59 +09:00
w100fb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
w100fb.h
wm8505fb_regs.h ARM: Add support for the display controllers in VT8500 and WM8505 2010-11-09 18:52:07 +09:00
wm8505fb.c fbdev: Modify vsync timing calculation in wm8505fb 2010-12-21 01:05:48 +09:00
wmt_ge_rops.c fbdev: Minor cleanup in WM8505-related code 2010-12-21 01:05:43 +09:00
wmt_ge_rops.h ARM: Add support for the display controllers in VT8500 and WM8505 2010-11-09 18:52:07 +09:00
xen-fbfront.c console: rename acquire/release_console_sem() to console_lock/unlock() 2011-01-26 10:50:06 +10:00
xilinxfb.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00