summaryrefslogtreecommitdiffstats
path: root/drivers/pnp
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-07-09 23:29:35 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-07-09 23:29:35 +0000
commit35385d7a83b4cae6d5ea5f80f3b3377d94178344 (patch)
tree49494d95dfef31ba4f9a697d31e4028cf65a57bd /drivers/pnp
parentd9d8062e7b49943b2a2fb034f817a9fc217fd40f (diff)
Merge with 2.4.0-test3-pre7.
Diffstat (limited to 'drivers/pnp')
-rw-r--r--drivers/pnp/isapnp_proc.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/pnp/isapnp_proc.c b/drivers/pnp/isapnp_proc.c
index 658fa2ede..3472225b8 100644
--- a/drivers/pnp/isapnp_proc.c
+++ b/drivers/pnp/isapnp_proc.c
@@ -28,6 +28,7 @@
#include <linux/poll.h>
#include <linux/vmalloc.h>
#include <asm/uaccess.h>
+#include <linux/smp_lock.h>
#include <linux/isapnp.h>
struct isapnp_info_buffer {
@@ -169,11 +170,12 @@ static int isapnp_info_entry_open(struct inode *inode, struct file *file)
kfree(buffer);
return -ENOMEM;
}
+ lock_kernel();
buffer->curr = buffer->buffer;
file->private_data = buffer;
- MOD_INC_USE_COUNT;
if (mode == O_RDONLY)
isapnp_info_read(buffer);
+ unlock_kernel();
return 0;
}
@@ -189,7 +191,6 @@ static int isapnp_info_entry_release(struct inode *inode, struct file *file)
isapnp_info_write(buffer);
vfree(buffer->buffer);
kfree(buffer);
- MOD_DEC_USE_COUNT;
return 0;
}
@@ -286,6 +287,7 @@ static int isapnp_proc_attach_device(struct pci_dev *dev)
if (!e)
return -ENOMEM;
e->proc_fops = &isapnp_proc_bus_file_operations;
+ e->owner = THIS_MODULE;
e->data = dev;
e->size = 256;
return 0;
@@ -367,8 +369,10 @@ int __init isapnp_proc_init(void)
isapnp_proc_entry = NULL;
p = create_proc_entry("isapnp", S_IFREG | S_IRUGO | S_IWUSR, &proc_root);
- if (p)
+ if (p) {
p->proc_fops = &isapnp_info_entry_operations;
+ p->owner = THIS_MODULE;
+ }
isapnp_proc_entry = p;
isapnp_proc_bus_dir = proc_mkdir("isapnp", proc_bus);
isapnp_proc_devices_entry = create_proc_info_entry("devices", 0,