• Jim Cromie's avatar
    kernel/module: add __dyndbg_classes section · 66f4006b
    Jim Cromie authored
    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: default avatarJim Cromie <jim.cromie@gmail.com>
    Link: https://lore.kernel.org/r/20220904214134.408619-16-jim.cromie@gmail.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    66f4006b
vmlinux.lds.h 32.4 KB