• Jaya Kumar's avatar
    fbdev: bugfix for multiprocess defio · f31ad92f
    Jaya Kumar authored
    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: default avatarJaya Kumar <jayakumar.lkml@gmail.com>
    Cc: Bernard Blackham <bernard@largestprime.net>
    Cc: <stable@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    f31ad92f
fb_defio.c 4.85 KB