From: Alexander Ofitserov <oficerovas@altlinux.org>
To: oficerovas@altlinux.org, Alejandro Colomar <alx@kernel.org>
Cc: linux-man@vger.kernel.org, dutyrok@altlinux.org, kovalev@altlinux.org
Subject: [PATCH] delete_module.2: Update man to actual syscall behaviour
Date: Tue, 20 Feb 2024 12:21:44 +0300 [thread overview]
Message-ID: <20240220092144.140251-1-oficerovas@altlinux.org> (raw)
Parameter O_NONBLOCK described in man doesn't exist anymore
in kernel versions 3.13+, which is quite old,
only O_TRUNC parameter present for actual kernel version,
O_NONBLOCK does nothing.
Signed-off-by: Alexander Ofitserov <oficerovas@altlinux.org>
---
man2/delete_module.2 | 57 +++++++++++++-------------------------------
1 file changed, 17 insertions(+), 40 deletions(-)
diff --git a/man2/delete_module.2 b/man2/delete_module.2
index e9c432e84..bc07d0ce3 100644
--- a/man2/delete_module.2
+++ b/man2/delete_module.2
@@ -50,42 +50,20 @@ is zero, then the module is immediately unloaded.
If a module has a nonzero reference count,
then the behavior depends on the bits set in
.IR flags .
-In normal usage (see NOTES), the
-.B O_NONBLOCK
-flag is always specified, and the
+The
.B O_TRUNC
flag may additionally be specified.
.\" O_TRUNC == KMOD_REMOVE_FORCE in kmod library
-.\" O_NONBLOCK == KMOD_REMOVE_NOWAIT in kmod library
.IP
The various combinations for
.I flags
have the following effect:
.RS
.TP
-.B flags == O_NONBLOCK
-The call returns immediately, with an error.
-.TP
-.B flags == (O_NONBLOCK | O_TRUNC)
+.B flags == O_TRUNC
The module is unloaded immediately,
regardless of whether it has a nonzero reference count.
-.TP
-.B (flags & O_NONBLOCK) == 0
-If
-.I flags
-does not specify
-.BR O_NONBLOCK ,
-the following steps occur:
.RS
-.IP \[bu] 3
-The module is marked so that no new references are permitted.
-.IP \[bu]
-If the module's reference count is nonzero,
-the caller is placed in an uninterruptible sleep state
-.RB ( TASK_UNINTERRUPTIBLE )
-until the reference count is zero, at which point the call unblocks.
-.IP \[bu]
-The module is unloaded in the usual way.
.RE
.RE
.P
@@ -151,11 +129,7 @@ in
.TP
.B EWOULDBLOCK
Other modules depend on this module;
-or,
-.B O_NONBLOCK
-was specified in
-.IR flags ,
-but the reference count of this module is nonzero and
+or, the reference count of this module is nonzero and
.B O_TRUNC
was not specified in
.IR flags .
@@ -172,6 +146,19 @@ it is (before glibc 2.23) sufficient to
manually declare the interface in your code;
alternatively, you can invoke the system call using
.BR syscall (2).
+.SS Linux 3.12 and earlier
+In Linux 3.12 and earlier, the system call took two arguments:
+.P
+.BI " int delete_module(const char *" name ", unsigned int " flags );
+.P
+Parameter
+.I flags
+also can contain
+.B O_NONBLOCK
+flag in addition to
+.B O_TRUNC
+flag.
+
.SS Linux 2.4 and earlier
In Linux 2.4 and earlier, the system call took only one argument:
.P
@@ -183,19 +170,9 @@ is NULL, all unused modules marked auto-clean are removed.
.P
Some further details of differences in the behavior of
.BR delete_module ()
-in Linux 2.4 and earlier are
+in Linux 3.12 and earlier are
.I not
currently explained in this manual page.
-.SH NOTES
-The uninterruptible sleep that may occur if
-.B O_NONBLOCK
-is omitted from
-.I flags
-is considered undesirable, because the sleeping process is left
-in an unkillable state.
-As at Linux 3.7, specifying
-.B O_NONBLOCK
-is optional, but in future kernels it is likely to become mandatory.
.SH SEE ALSO
.BR create_module (2),
.BR init_module (2),
--
2.33.8
next reply other threads:[~2024-02-20 9:22 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-20 9:21 Alexander Ofitserov [this message]
2024-02-20 13:20 ` [PATCH] delete_module.2: Update man to actual syscall behaviour G. Branden Robinson
2024-02-20 15:24 ` Alejandro Colomar
2024-02-20 16:36 ` G. Branden Robinson
2024-02-20 17:48 ` Alejandro Colomar
2024-02-20 18:18 ` Dmitry V. Levin
2024-02-20 18:42 ` Alejandro Colomar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240220092144.140251-1-oficerovas@altlinux.org \
--to=oficerovas@altlinux.org \
--cc=alx@kernel.org \
--cc=dutyrok@altlinux.org \
--cc=kovalev@altlinux.org \
--cc=linux-man@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).