]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commit - kernel/module/main.c
kernel/module: add __dyndbg_classes section
authorJim Cromie <jim.cromie@gmail.com>
Sun, 4 Sep 2022 21:40:52 +0000 (15:40 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 7 Sep 2022 15:04:49 +0000 (17:04 +0200)
commit66f4006b6ace1a1a1a1dca4225972f79a298e251
tree319930012fddae2c0f0b086de2cfdf8aa973a4d6
parentaad0214f30264c19044a77fc4776def349b76fc4
kernel/module: add __dyndbg_classes section

Add __dyndbg_classes section, using __dyndbg as a model. Use it:

vmlinux.lds.h:

KEEP the new section, which also silences orphan section warning on
loadable modules.  Add (__start_/__stop_)__dyndbg_classes linker
symbols for the c externs (below).

kernel/module/main.c:
- fill new fields in find_module_sections(), using section_objs()
- extend callchain prototypes
  to pass classes, length
  load_module(): pass new info to dynamic_debug_setup()
  dynamic_debug_setup(): new params, pass through to ddebug_add_module()

dynamic_debug.c:
- add externs to the linker symbols.

ddebug_add_module():
- It currently builds a debug_table, and *will* find and attach classes.

dynamic_debug_init():
- add class fields to the _ddebug_info cursor var: di.

Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
Link: https://lore.kernel.org/r/20220904214134.408619-16-jim.cromie@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/asm-generic/vmlinux.lds.h
include/linux/dynamic_debug.h
kernel/module/main.c
lib/dynamic_debug.c