module: Move kdb module related code out of main kdb code
No functional change. This patch migrates the kdb 'lsmod' command support out of main kdb code into its own file under kernel/module. In addition to the above, a minor style warning i.e. missing a blank line after declarations, was resolved too. The new file was added to MAINTAINERS. Finally we remove linux/module.h as it is entirely redundant. Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org> Acked-by: Daniel Thompson <daniel.thompson@linaro.org> Signed-off-by: Aaron Tomlin <atomlin@redhat.com> Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
This commit is contained in:
parent
44c09535de
commit
f64205a420
10 changed files with 59 additions and 60 deletions
|
|
@ -17,3 +17,4 @@ obj-$(CONFIG_DEBUG_KMEMLEAK) += debug_kmemleak.o
|
|||
obj-$(CONFIG_KALLSYMS) += kallsyms.o
|
||||
obj-$(CONFIG_PROC_FS) += procfs.o
|
||||
obj-$(CONFIG_SYSFS) += sysfs.o
|
||||
obj-$(CONFIG_KGDB_KDB) += kdb.o
|
||||
|
|
|
|||
56
kernel/module/kdb.c
Normal file
56
kernel/module/kdb.c
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Module kdb support
|
||||
*
|
||||
* Copyright (C) 2010 Jason Wessel
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/kdb.h>
|
||||
#include "internal.h"
|
||||
|
||||
/*
|
||||
* kdb_lsmod - This function implements the 'lsmod' command. Lists
|
||||
* currently loaded kernel modules.
|
||||
* Mostly taken from userland lsmod.
|
||||
*/
|
||||
int kdb_lsmod(int argc, const char **argv)
|
||||
{
|
||||
struct module *mod;
|
||||
|
||||
if (argc != 0)
|
||||
return KDB_ARGCOUNT;
|
||||
|
||||
kdb_printf("Module Size modstruct Used by\n");
|
||||
list_for_each_entry(mod, &modules, list) {
|
||||
if (mod->state == MODULE_STATE_UNFORMED)
|
||||
continue;
|
||||
|
||||
kdb_printf("%-20s%8u 0x%px ", mod->name,
|
||||
mod->core_layout.size, (void *)mod);
|
||||
#ifdef CONFIG_MODULE_UNLOAD
|
||||
kdb_printf("%4d ", module_refcount(mod));
|
||||
#endif
|
||||
if (mod->state == MODULE_STATE_GOING)
|
||||
kdb_printf(" (Unloading)");
|
||||
else if (mod->state == MODULE_STATE_COMING)
|
||||
kdb_printf(" (Loading)");
|
||||
else
|
||||
kdb_printf(" (Live)");
|
||||
kdb_printf(" 0x%px", mod->core_layout.base);
|
||||
|
||||
#ifdef CONFIG_MODULE_UNLOAD
|
||||
{
|
||||
struct module_use *use;
|
||||
|
||||
kdb_printf(" [ ");
|
||||
list_for_each_entry(use, &mod->source_list,
|
||||
source_list)
|
||||
kdb_printf("%s ", use->target->name);
|
||||
kdb_printf("]\n");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -108,10 +108,6 @@ static void mod_update_bounds(struct module *mod)
|
|||
__mod_update_bounds(mod->init_layout.base, mod->init_layout.size);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_KGDB_KDB
|
||||
struct list_head *kdb_modules = &modules; /* kdb needs the list of modules */
|
||||
#endif /* CONFIG_KGDB_KDB */
|
||||
|
||||
static void module_assert_mutex_or_preempt(void)
|
||||
{
|
||||
#ifdef CONFIG_LOCKDEP
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue