Changes since v2 [1]: - Add kselftests to verify the expected behavior. - Split a clean-up change to the module_mutex comment into a separate patch. - Clarify a description of the main patch and mention that it fixes also a recently reported problem with module vmap space allocation errors. - Improve some code comments. Changes since v1 [2]: - Change the error returned by a duplicate load when the main insert fails from -ENODEV to -EBUSY. - Change the error returned by a duplicate load when a same-name module is going from -EAGAIN to -EBUSY. - Use a per-shared_load_info completion object to inform waiting loads when the main one is done. - Add a patch to correct wake up of module_wq. [1] https://lore.kernel.org/linux-modules/20220919123233.8538-1-petr.pavlu@xxxxxxxx/ [2] https://lore.kernel.org/linux-modules/20220905084131.14567-1-petr.pavlu@xxxxxxxx/ Petr Pavlu (4): module: Correct wake up of module_wq module: Update a comment describing what is protected by module_mutex module: Merge same-name module load requests selftests: kmod: Add tests for merging same-name module load requests kernel/module/main.c | 222 +++++++++++++----- tools/testing/selftests/kmod/.gitignore | 1 + tools/testing/selftests/kmod/Makefile | 17 +- tools/testing/selftests/kmod/init_module.c | 49 ++++ tools/testing/selftests/kmod/kmod.sh | 139 +++++++++++ .../selftests/kmod/kmod_test_0014/Makefile | 14 ++ .../kmod/kmod_test_0014/kmod_test_0014.c | 29 +++ 7 files changed, 402 insertions(+), 69 deletions(-) create mode 100644 tools/testing/selftests/kmod/.gitignore create mode 100644 tools/testing/selftests/kmod/init_module.c create mode 100644 tools/testing/selftests/kmod/kmod_test_0014/Makefile create mode 100644 tools/testing/selftests/kmod/kmod_test_0014/kmod_test_0014.c -- 2.35.3