patch-2.4.0-test3 linux/drivers/isdn/hysdn/hysdn_proclog.c
Next file: linux/drivers/isdn/isdn_cards.c
Previous file: linux/drivers/isdn/hysdn/hysdn_procfs.c
Back to the patch index
Back to the overall index
- Lines: 58
- Date:
Sat Jul 8 19:26:12 2000
- Orig file:
v2.4.0-test2/linux/drivers/isdn/hysdn/hysdn_proclog.c
- Orig date:
Mon Mar 27 08:08:25 2000
diff -u --recursive --new-file v2.4.0-test2/linux/drivers/isdn/hysdn/hysdn_proclog.c linux/drivers/isdn/hysdn/hysdn_proclog.c
@@ -45,6 +45,7 @@
#include <linux/poll.h>
#include <linux/proc_fs.h>
#include <linux/pci.h>
+#include <linux/smp_lock.h>
#include "hysdn_defs.h"
@@ -293,7 +294,7 @@
struct procdata *pd;
ulong flags;
- MOD_INC_USE_COUNT; /* lock module */
+ lock_kernel();
card = card_root;
while (card) {
pd = card->proclog;
@@ -302,7 +303,7 @@
card = card->next; /* search next entry */
}
if (!card) {
- MOD_DEC_USE_COUNT; /* unlock module */
+ unlock_kernel();
return (-ENODEV); /* device is unknown/invalid */
}
filep->private_data = card; /* remember our own card */
@@ -321,9 +322,10 @@
(struct log_data **) filep->private_data = &(pd->log_head);
restore_flags(flags);
} else { /* simultaneous read/write access forbidden ! */
- MOD_DEC_USE_COUNT; /* unlock module */
+ unlock_kernel();
return (-EPERM); /* no permission this time */
}
+ unlock_kernel();
return (0);
} /* hysdn_log_open */
@@ -385,7 +387,6 @@
}
} /* read access */
- MOD_DEC_USE_COUNT;
return (retval);
} /* hysdn_log_close */
@@ -451,8 +452,10 @@
if ((pd = (struct procdata *) kmalloc(sizeof(struct procdata), GFP_KERNEL)) != NULL) {
memset(pd, 0, sizeof(struct procdata));
sprintf(pd->log_name, "%s%d", PROC_LOG_BASENAME, card->myid);
- if ((pd->log = create_proc_entry(pd->log_name, S_IFREG | S_IRUGO | S_IWUSR, hysdn_proc_entry)) != NULL)
+ if ((pd->log = create_proc_entry(pd->log_name, S_IFREG | S_IRUGO | S_IWUSR, hysdn_proc_entry)) != NULL) {
pd->log->proc_fops = &log_fops;
+ pd->log->owner = THIS_MODULE;
+ }
init_waitqueue_head(&(pd->rd_queue));
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)