aboutsummaryrefslogtreecommitdiff
path: root/drivers/video/fb_defio.c
diff options
context:
space:
mode:
authorMagnus Damm <damm@igel.co.jp>2008-12-19 15:34:09 +0900
committerPaul Mundt <lethal@linux-sh.org>2008-12-22 18:44:48 +0900
commit87884bd8ae42c875adbd62c84f47ed1cbb3e5090 (patch)
tree93f4632aac9c3a3579702e4b3a5dad16b5c27fa1 /drivers/video/fb_defio.c
parent0790555437df2b6070af8f021b8d2ef79e70e144 (diff)
video: fix deferred io fsync()
If CONFIG_FB_DEFERRED_IO is set, but there are framebuffers registered that does not make use of deferred io, then fsync() on those framebuffers will result in a crash. Fix that. This is needed for sh_mobile_lcdcfb since we always enable deferred io at compile time but we may disable deferred io for some types of hardware configurations. Signed-off-by: Magnus Damm <damm@igel.co.jp> Acked-by: Jaya Kumar <jayakumar.lkml@gmail.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'drivers/video/fb_defio.c')
-rw-r--r--drivers/video/fb_defio.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/video/fb_defio.c b/drivers/video/fb_defio.c
index 4835bdc4e9f..e6dafeddfa5 100644
--- a/drivers/video/fb_defio.c
+++ b/drivers/video/fb_defio.c
@@ -60,6 +60,10 @@ int fb_deferred_io_fsync(struct file *file, struct dentry *dentry, int datasync)
{
struct fb_info *info = file->private_data;
+ /* Skip if deferred io is complied-in but disabled on this fbdev */
+ if (!info->fbdefio)
+ return 0;
+
/* Kill off the delayed work */
cancel_rearming_delayed_work(&info->deferred_work);