From 7495f693770cde0618962ea2e5d85e8db3d2282f Mon Sep 17 00:00:00 2001 From: Jonathan Corbet Date: Fri, 16 May 2008 14:03:05 -0600 Subject: [PATCH] --- yaml --- r: 100309 b: refs/heads/master c: 4541b5ec9f631a143cdea862d07ddfc3cdac36f2 h: refs/heads/master i: 100307: c815a4aa30d215e86a0bc13ecc78f4f9612d4dc2 v: v3 --- [refs] | 2 +- trunk/drivers/misc/phantom.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 9870ead23baf..274cd2b93241 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 057e7c7ff9f91a36a761588c53826bd6a710aeba +refs/heads/master: 4541b5ec9f631a143cdea862d07ddfc3cdac36f2 diff --git a/trunk/drivers/misc/phantom.c b/trunk/drivers/misc/phantom.c index 71d1c84e2fa8..186162470090 100644 --- a/trunk/drivers/misc/phantom.c +++ b/trunk/drivers/misc/phantom.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -212,13 +213,17 @@ static int phantom_open(struct inode *inode, struct file *file) struct phantom_device *dev = container_of(inode->i_cdev, struct phantom_device, cdev); + lock_kernel(); nonseekable_open(inode, file); - if (mutex_lock_interruptible(&dev->open_lock)) + if (mutex_lock_interruptible(&dev->open_lock)) { + unlock_kernel(); return -ERESTARTSYS; + } if (dev->opened) { mutex_unlock(&dev->open_lock); + unlock_kernel(); return -EINVAL; } @@ -229,7 +234,7 @@ static int phantom_open(struct inode *inode, struct file *file) atomic_set(&dev->counter, 0); dev->opened++; mutex_unlock(&dev->open_lock); - + unlock_kernel(); return 0; }