Merge branch 'timers-cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[pandora-kernel.git] / drivers / char / apm-emulation.c
index 45b987c..a7346ab 100644 (file)
@@ -126,7 +126,6 @@ struct apm_user {
 /*
  * Local variables
  */
-static DEFINE_MUTEX(apm_mutex);
 static atomic_t suspend_acks_pending = ATOMIC_INIT(0);
 static atomic_t userspace_notification_inhibit = ATOMIC_INIT(0);
 static int apm_disabled;
@@ -275,7 +274,6 @@ apm_ioctl(struct file *filp, u_int cmd, u_long arg)
        if (!as->suser || !as->writer)
                return -EPERM;
 
-       mutex_lock(&apm_mutex);
        switch (cmd) {
        case APM_IOC_SUSPEND:
                mutex_lock(&state_lock);
@@ -336,7 +334,6 @@ apm_ioctl(struct file *filp, u_int cmd, u_long arg)
                mutex_unlock(&state_lock);
                break;
        }
-       mutex_unlock(&apm_mutex);
 
        return err;
 }
@@ -371,7 +368,6 @@ static int apm_open(struct inode * inode, struct file * filp)
 {
        struct apm_user *as;
 
-       mutex_lock(&apm_mutex);
        as = kzalloc(sizeof(*as), GFP_KERNEL);
        if (as) {
                /*
@@ -391,7 +387,6 @@ static int apm_open(struct inode * inode, struct file * filp)
 
                filp->private_data = as;
        }
-       mutex_unlock(&apm_mutex);
 
        return as ? 0 : -ENOMEM;
 }
@@ -611,7 +606,7 @@ static int apm_suspend_notifier(struct notifier_block *nb,
                        return NOTIFY_OK;
 
                /* interrupted by signal */
-               return NOTIFY_BAD;
+               return notifier_from_errno(err);
 
        case PM_POST_SUSPEND:
                /*