lkml.org 
[lkml]   [2000]   [Nov]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Module open() problems, Linux 2.4.0
"Richard B. Johnson" wrote:
>
> `lsmod` shows that a device is open twice when using Linux-2.4.0-test9
> when, in fact, it has been opened only once.
>
> lsmod is version 2.3.15, the latest-and-greatest.
>
> Here are the open/close routines for a module.
>
> /*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
> /*
> * Open the device.
> */
> static int device_open(struct inode *inp, struct file *fp)
> {
> DEB(printk("%s open\n", info->dev));
> MOD_INC_USE_COUNT; /* Increment usage count */
> return 0;
> }
> /*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
> /*
> * Close the device.
> */
> static int device_close(struct inode *inp, struct file *fp)
> {
> DEB(printk("%s close\n", info->dev));
> MOD_DEC_USE_COUNT; /* Decrement usage count */
> return 0;
> }
>
> When the module is closed, the use-count goes to zero as expected.
> However, a single open() causes the use-count to be 2.

This is harmless. It is caused by a try_inc_mod_count(module) in the
function calling device_open(), which is the proper way for module
locking to be handled when not holding the BKL. You can keep the
MOD_INC_USE_COUNT in the device driver for compatability with 2.2.

--

Brian Gerst
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:45    [W:0.052 / U:1.240 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site