git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge git://git.infradead.org/~dwmw2/mtd-2.6.35
[pandora-kernel.git]
/
drivers
/
char
/
apm-emulation.c
diff --git
a/drivers/char/apm-emulation.c
b/drivers/char/apm-emulation.c
index
4f568cb
..
033e150
100644
(file)
--- a/
drivers/char/apm-emulation.c
+++ b/
drivers/char/apm-emulation.c
@@
-265,8
+265,8
@@
static unsigned int apm_poll(struct file *fp, poll_table * wait)
* Only when everyone who has opened /dev/apm_bios with write permission
* has acknowledge does the actual suspend happen.
*/
* Only when everyone who has opened /dev/apm_bios with write permission
* has acknowledge does the actual suspend happen.
*/
-static
int
-apm_ioctl(struct
inode * inode, struct
file *filp, u_int cmd, u_long arg)
+static
long
+apm_ioctl(struct file *filp, u_int cmd, u_long arg)
{
struct apm_user *as = filp->private_data;
int err = -EINVAL;
{
struct apm_user *as = filp->private_data;
int err = -EINVAL;
@@
-274,6
+274,7
@@
apm_ioctl(struct inode * inode, struct file *filp, u_int cmd, u_long arg)
if (!as->suser || !as->writer)
return -EPERM;
if (!as->suser || !as->writer)
return -EPERM;
+ lock_kernel();
switch (cmd) {
case APM_IOC_SUSPEND:
mutex_lock(&state_lock);
switch (cmd) {
case APM_IOC_SUSPEND:
mutex_lock(&state_lock);
@@
-334,6
+335,7
@@
apm_ioctl(struct inode * inode, struct file *filp, u_int cmd, u_long arg)
mutex_unlock(&state_lock);
break;
}
mutex_unlock(&state_lock);
break;
}
+ unlock_kernel();
return err;
}
return err;
}
@@
-397,7
+399,7
@@
static const struct file_operations apm_bios_fops = {
.owner = THIS_MODULE,
.read = apm_read,
.poll = apm_poll,
.owner = THIS_MODULE,
.read = apm_read,
.poll = apm_poll,
- .
ioctl
= apm_ioctl,
+ .
unlocked_ioctl
= apm_ioctl,
.open = apm_open,
.release = apm_release,
};
.open = apm_open,
.release = apm_release,
};