Skip to content

Commit 467cc83

Browse files
authored
Improve the descriptions about reference count (#62)
The term "reference count" would be better than "use count." In addition, the usage of module_refcount(THIS_MODULE) was appended for the reference counter query.
1 parent 53d071e commit 467cc83

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

lkmpg.tex

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -894,14 +894,15 @@ \subsection{Unregistering A Device}
894894
Normally, when you do not want to allow something, you return an error code (a negative number) from the function which is supposed to do it.
895895
With \cpp|cleanup_module| that's impossible because it is a void function.
896896
However, there is a counter which keeps track of how many processes are using your module.
897-
You can see what its value is by looking at the 3rd field of \verb|/proc/modules|.
897+
You can see what its value is by looking at the 3rd field with the command \sh|cat /proc/modules| or \sh|sudo lsmod|.
898898
If this number isn't zero, \sh|rmmod| will fail.
899899
Note that you do not have to check the counter within \cpp|cleanup_module| because the check will be performed for you by the system call \cpp|sys_delete_module|, defined in \src{include/linux/syscalls.h}.
900900
You should not use this counter directly, but there are functions defined in \src{include/linux/module.h} which let you increase, decrease and display this counter:
901901

902902
\begin{itemize}
903-
\item \cpp|try_module_get(THIS_MODULE)|: Increment the use count.
904-
\item \cpp|module_put(THIS_MODULE)|: Decrement the use count.
903+
\item \cpp|try_module_get(THIS_MODULE)|: Increment the reference count of current module.
904+
\item \cpp|module_put(THIS_MODULE)|: Decrement the reference count of current module.
905+
\item \cpp|module_refcount(THIS_MODULE)|: Return the value of reference count of current module.
905906
\end{itemize}
906907

907908
It is important to keep the counter accurate; if you ever do lose track of the correct usage count, you will never be able to unload the module; it's now reboot time, boys and girls.

0 commit comments

Comments
 (0)