"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 [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to