On 19.02.2024 14:56, Alejandro Colomar wrote:
Hi,
On Mon, Feb 19, 2024 at 11:17:29AM +0300, Александр Офицеров wrote:
Found out that man page for delete_module syscall is outdated.
The behaviour described there doesn't match to code, specifically for
unloading module if its have no refcnt. 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.
I've also opened an issue on bugzilla:
https://bugzilla.kernel.org/show_bug.cgi?id=218489
Would you mind suggesting a patch? Also, would you mind showing your
findings in the kernel code?
See also:
<https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING>
<https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING.d/bugs>
<https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING.d/patches>
<https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING.d/mail>
Have a lovely day!
Alex
Sure!
O_NONBLOCK used in "try_stop_module" function, which is invoked by
syscall delete_module, here is the code of this function for kernel
version 3.12.74:
https://elixir.bootlin.com/linux/v3.12.74/source/kernel/module.c#L775
However, in later kernels, this parameter disappeared.
Also, here is the code for 3.13:
https://elixir.bootlin.com/linux/v3.13/source/kernel/module.c#L767
In recent kernels, 6.7.5 for example, this parameter also absent:
https://elixir.bootlin.com/linux/v6.7.5/source/kernel/module/main.c#L637
I'll make patch for man tomorrow.