|
@@ -13,6 +13,7 @@
|
|
|
#include <linux/module.h>
|
|
|
#include <linux/poll.h>
|
|
|
#include <linux/slab.h>
|
|
|
+#include <linux/smp_lock.h>
|
|
|
#include <linux/proc_fs.h>
|
|
|
#include <linux/seq_file.h>
|
|
|
#include <linux/miscdevice.h>
|
|
@@ -416,6 +417,7 @@ static int apm_open(struct inode * inode, struct file * filp)
|
|
|
{
|
|
|
struct apm_user *as;
|
|
|
|
|
|
+ lock_kernel();
|
|
|
as = kzalloc(sizeof(*as), GFP_KERNEL);
|
|
|
if (as) {
|
|
|
/*
|
|
@@ -435,6 +437,7 @@ static int apm_open(struct inode * inode, struct file * filp)
|
|
|
|
|
|
filp->private_data = as;
|
|
|
}
|
|
|
+ unlock_kernel();
|
|
|
|
|
|
return as ? 0 : -ENOMEM;
|
|
|
}
|