]> git.karo-electronics.de Git - karo-tx-linux.git/commit
fbdev: bugfix for multiprocess defio
authorJaya Kumar <jayakumar.lkml@gmail.com>
Sat, 12 Jul 2008 21:40:37 +0000 (21:40 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 24 Jul 2008 16:14:09 +0000 (09:14 -0700)
commit043ce6e2d71a5111b8f237da119336007f29b033
treebf81b26fe9584e487196608795379e0ce3660bdd
parent57dc6158b397beba881fa405cbafcfb99b57dd5e
fbdev: bugfix for multiprocess defio

commit f31ad92f34913043cf008d6e479e92dfbaf02df1 upstream

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>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/video/fb_defio.c