summaryrefslogtreecommitdiff
path: root/lib/klist.c
diff options
context:
space:
mode:
authorJim Cromie <jim.cromie@gmail.com>2022-09-05 00:40:53 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-09-07 18:04:49 +0300
commitc45f67ace832e4f66482bffa5808c94f815723e8 (patch)
tree75cddec50e64234a50f22aa21655ca359ec10f60 /lib/klist.c
parent66f4006b6ace1a1a1a1dca4225972f79a298e251 (diff)
downloadlinux-c45f67ace832e4f66482bffa5808c94f815723e8.tar.xz
dyndbg: add ddebug_attach_module_classes
Add ddebug_attach_module_classes(), call it from ddebug_add_module(). It scans the classes/section its given, finds records where the module-name matches the module being added, and adds them to the module's maps list. No locking here, since the record isn't yet linked into the ddebug_tables list. It is called indirectly from 2 sources: - from load_module(), where it scans the module's __dyndbg_classes section, which contains DYNAMIC_DEBUG_CLASSES definitions from just the module. - from dynamic_debug_init(), where all DYNAMIC_DEBUG_CLASSES definitions of each builtin module have been packed together. This is why ddebug_attach_module_classes() checks module-name. NOTES Its (highly) likely that builtin classes will be ordered by module name (just like prdbg descriptors are in the __dyndbg section). So the list can be replaced by a vector (ptr + length), which will work for loaded modules too. This would imitate whats currently done for the _ddebug descriptors. That said, converting to vector,len is close to pointless; a small minority of modules will ever define a class-map, and almost all of them will have only 1 or 2 class-maps, so theres only a couple dozen pointers to save. TODO: re-evaluate for lines removable. Signed-off-by: Jim Cromie <jim.cromie@gmail.com> Link: https://lore.kernel.org/r/20220904214134.408619-17-jim.cromie@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'lib/klist.c')
0 files changed, 0 insertions, 0 deletions