/*
* 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;
if (!as->suser || !as->writer)
return -EPERM;
- mutex_lock(&apm_mutex);
switch (cmd) {
case APM_IOC_SUSPEND:
mutex_lock(&state_lock);
mutex_unlock(&state_lock);
break;
}
- mutex_unlock(&apm_mutex);
return err;
}
{
struct apm_user *as;
- mutex_lock(&apm_mutex);
as = kzalloc(sizeof(*as), GFP_KERNEL);
if (as) {
/*
filp->private_data = as;
}
- mutex_unlock(&apm_mutex);
return as ? 0 : -ENOMEM;
}
return NOTIFY_OK;
/* interrupted by signal */
- return NOTIFY_BAD;
+ return notifier_from_errno(err);
case PM_POST_SUSPEND:
/*