diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-07-09 23:29:35 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-07-09 23:29:35 +0000 |
commit | 35385d7a83b4cae6d5ea5f80f3b3377d94178344 (patch) | |
tree | 49494d95dfef31ba4f9a697d31e4028cf65a57bd /drivers/pnp | |
parent | d9d8062e7b49943b2a2fb034f817a9fc217fd40f (diff) |
Merge with 2.4.0-test3-pre7.
Diffstat (limited to 'drivers/pnp')
-rw-r--r-- | drivers/pnp/isapnp_proc.c | 10 |
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, |