浏览代码

framebuffer compat_ioctl deadlock

Fix deadlock in fb_compat_ioctl.  fb_compat_ioctl acquires a mutex and
calls fb_ioctl that tries to acquire that mutex too.  A regression added
during BKL removal.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Mikulas Patocka 16 年之前
父节点
当前提交
120a37470c
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      drivers/video/fbmem.c

+ 2 - 2
drivers/video/fbmem.c

@@ -1262,8 +1262,8 @@ fb_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 	case FBIOPUT_CON2FBMAP:
 	case FBIOPUT_CON2FBMAP:
 		arg = (unsigned long) compat_ptr(arg);
 		arg = (unsigned long) compat_ptr(arg);
 	case FBIOBLANK:
 	case FBIOBLANK:
-		ret = fb_ioctl(file, cmd, arg);
-		break;
+		mutex_unlock(&info->lock);
+		return fb_ioctl(file, cmd, arg);
 
 
 	case FBIOGET_FSCREENINFO:
 	case FBIOGET_FSCREENINFO:
 		ret = fb_get_fscreeninfo(inode, file, cmd, arg);
 		ret = fb_get_fscreeninfo(inode, file, cmd, arg);