mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-04 04:04:19 +00:00
dyndbg: reverse module.callsite walk in cat control
Walk the module's vector of callsites backwards; ie N..0. This "corrects" the backwards appearance of a module's prdbg vector when walked 0..N. I think this is due to linker mechanics, which I'm inclined to treat as immutable, and the order is fixable in display. No functional changes. Combined with previous commit, which reversed tables-list, we get: :#> head -n7 /proc/dynamic_debug/control # filename:lineno [module]function flags format init/main.c:1179 [main]initcall_blacklist =_ "blacklisting initcall %s\012" init/main.c:1218 [main]initcall_blacklisted =_ "initcall %s blacklisted\012" init/main.c:1424 [main]run_init_process =_ " with arguments:\012" init/main.c:1426 [main]run_init_process =_ " %s\012" init/main.c:1427 [main]run_init_process =_ " with environment:\012" init/main.c:1429 [main]run_init_process =_ " %s\012" Acked-by: Jason Baron <jbaron@akamai.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Jim Cromie <jim.cromie@gmail.com> Link: https://lore.kernel.org/r/20220904214134.408619-6-jim.cromie@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
2ad556f700
commit
773beabbb8
@ -59,7 +59,7 @@ struct ddebug_query {
|
||||
|
||||
struct ddebug_iter {
|
||||
struct ddebug_table *table;
|
||||
unsigned int idx;
|
||||
int idx;
|
||||
};
|
||||
|
||||
struct flag_settings {
|
||||
@ -805,13 +805,12 @@ static struct _ddebug *ddebug_iter_first(struct ddebug_iter *iter)
|
||||
{
|
||||
if (list_empty(&ddebug_tables)) {
|
||||
iter->table = NULL;
|
||||
iter->idx = 0;
|
||||
return NULL;
|
||||
}
|
||||
iter->table = list_entry(ddebug_tables.next,
|
||||
struct ddebug_table, link);
|
||||
iter->idx = 0;
|
||||
return &iter->table->ddebugs[iter->idx];
|
||||
iter->idx = iter->table->num_ddebugs;
|
||||
return &iter->table->ddebugs[--iter->idx];
|
||||
}
|
||||
|
||||
/*
|
||||
@ -824,15 +823,16 @@ static struct _ddebug *ddebug_iter_next(struct ddebug_iter *iter)
|
||||
{
|
||||
if (iter->table == NULL)
|
||||
return NULL;
|
||||
if (++iter->idx == iter->table->num_ddebugs) {
|
||||
if (--iter->idx < 0) {
|
||||
/* iterate to next table */
|
||||
iter->idx = 0;
|
||||
if (list_is_last(&iter->table->link, &ddebug_tables)) {
|
||||
iter->table = NULL;
|
||||
return NULL;
|
||||
}
|
||||
iter->table = list_entry(iter->table->link.next,
|
||||
struct ddebug_table, link);
|
||||
iter->idx = iter->table->num_ddebugs;
|
||||
--iter->idx;
|
||||
}
|
||||
return &iter->table->ddebugs[iter->idx];
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user