* [song-md:new_module_alloc_build_test 1/1] kernel/module/main.c:2607:1-11: second lock on line 2620
@ 2023-02-09 1:40 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-02-09 1:40 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Julia Lawall
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-raid@vger.kernel.org
TO: Song Liu <song@kernel.org>
tree: git://git.kernel.org/pub/scm/linux/kernel/git/song/md.git new_module_alloc_build_test
head: d63bee3fea6c9ac940de7b3725bf9adf7050a430
commit: d63bee3fea6c9ac940de7b3725bf9adf7050a430 [1/1] module: replace module_layout with module_memory
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: nios2-randconfig-c031-20230209 (https://download.01.org/0day-ci/archive/20230209/202302090929.h71piQ7H-lkp@intel.com/config)
compiler: nios2-linux-gcc (GCC) 12.1.0
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Julia Lawall <julia.lawall@inria.fr>
| Link: https://lore.kernel.org/r/202302090929.h71piQ7H-lkp@intel.com
cocci warnings: (new ones prefixed by >>)
>> kernel/module/main.c:2607:1-11: second lock on line 2620
kernel/module/main.c:1243:1-11: second lock on line 1263
kernel/module/main.c:2914:1-11: second lock on line 2930
--
>> kernel/module/main.c:2646:1-7: preceding lock on line 2607
vim +2607 kernel/module/main.c
34e1169d996ab1 kernel/module.c Kees Cook 2012-10-16 2594
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2595 /*
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2596 * We try to place it in the list now to make sure it's unique before
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2597 * we dedicate too many resources. In particular, temporary percpu
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2598 * memory exhaustion.
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2599 */
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2600 static int add_unformed_module(struct module *mod)
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2601 {
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2602 int err;
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2603 struct module *old;
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2604
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2605 mod->state = MODULE_STATE_UNFORMED;
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2606
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 @2607 mutex_lock(&module_mutex);
4f6de4d51f4a3a kernel/module.c Mathias Krause 2013-07-02 2608 old = find_module_all(mod->name, strlen(mod->name), true);
4f6de4d51f4a3a kernel/module.c Mathias Krause 2013-07-02 2609 if (old != NULL) {
0254127ab977e7 kernel/module/main.c Petr Pavlu 2022-12-05 2610 if (old->state == MODULE_STATE_COMING
0254127ab977e7 kernel/module/main.c Petr Pavlu 2022-12-05 2611 || old->state == MODULE_STATE_UNFORMED) {
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2612 /* Wait in case it fails to load. */
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2613 mutex_unlock(&module_mutex);
9cc019b8c94fa5 kernel/module.c Peter Zijlstra 2015-02-11 2614 err = wait_event_interruptible(module_wq,
9cc019b8c94fa5 kernel/module.c Peter Zijlstra 2015-02-11 2615 finished_loading(mod->name));
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2616 if (err)
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2617 goto out_unlocked;
0254127ab977e7 kernel/module/main.c Petr Pavlu 2022-12-05 2618
0254127ab977e7 kernel/module/main.c Petr Pavlu 2022-12-05 2619 /* The module might have gone in the meantime. */
0254127ab977e7 kernel/module/main.c Petr Pavlu 2022-12-05 @2620 mutex_lock(&module_mutex);
0254127ab977e7 kernel/module/main.c Petr Pavlu 2022-12-05 2621 old = find_module_all(mod->name, strlen(mod->name),
0254127ab977e7 kernel/module/main.c Petr Pavlu 2022-12-05 2622 true);
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2623 }
0254127ab977e7 kernel/module/main.c Petr Pavlu 2022-12-05 2624
0254127ab977e7 kernel/module/main.c Petr Pavlu 2022-12-05 2625 /*
0254127ab977e7 kernel/module/main.c Petr Pavlu 2022-12-05 2626 * We are here only when the same module was being loaded. Do
0254127ab977e7 kernel/module/main.c Petr Pavlu 2022-12-05 2627 * not try to load it again right now. It prevents long delays
0254127ab977e7 kernel/module/main.c Petr Pavlu 2022-12-05 2628 * caused by serialized module load failures. It might happen
0254127ab977e7 kernel/module/main.c Petr Pavlu 2022-12-05 2629 * when more devices of the same type trigger load of
0254127ab977e7 kernel/module/main.c Petr Pavlu 2022-12-05 2630 * a particular module.
0254127ab977e7 kernel/module/main.c Petr Pavlu 2022-12-05 2631 */
0254127ab977e7 kernel/module/main.c Petr Pavlu 2022-12-05 2632 if (old && old->state == MODULE_STATE_LIVE)
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2633 err = -EEXIST;
0254127ab977e7 kernel/module/main.c Petr Pavlu 2022-12-05 2634 else
0254127ab977e7 kernel/module/main.c Petr Pavlu 2022-12-05 2635 err = -EBUSY;
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2636 goto out;
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2637 }
4f666546d04775 kernel/module.c Peter Zijlstra 2015-05-27 2638 mod_update_bounds(mod);
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2639 list_add_rcu(&mod->list, &modules);
93c2e105f6bcee kernel/module.c Peter Zijlstra 2015-05-27 2640 mod_tree_insert(mod);
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2641 err = 0;
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2642
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2643 out:
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2644 mutex_unlock(&module_mutex);
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2645 out_unlocked:
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 @2646 return err;
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2647 }
a3535c7e4f4495 kernel/module.c Rusty Russell 2013-01-21 2648
:::::: The code at line 2607 was first introduced by commit
:::::: a3535c7e4f4495fe947f7901d25447d80e04fe52 module: clean up load_module a little more.
:::::: TO: Rusty Russell <rusty@rustcorp.com.au>
:::::: CC: Rusty Russell <rusty@rustcorp.com.au>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-02-09 1:41 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-09 1:40 [song-md:new_module_alloc_build_test 1/1] kernel/module/main.c:2607:1-11: second lock on line 2620 kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.