[PATCH v4 2/8] scripts/kallsyms: ensure that all possible combinations are compressed
From: Zhen Lei
Date: Tue Sep 20 2022 - 03:14:34 EST
For a symbol, there may be more than one place that can be merged. For
example: nfs_fs_proc_net_init, there are two "f"+"s_" combinations.
And we're only compressing the first combination at the moment. Let's
compress all possible combinations.
Signed-off-by: Zhen Lei <thunder.leizhen@xxxxxxxxxx>
---
scripts/kallsyms.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
index 8caccc8f4a23703..3319d9f38d7a5f2 100644
--- a/scripts/kallsyms.c
+++ b/scripts/kallsyms.c
@@ -553,7 +553,7 @@ static void compress_symbols(const unsigned char *str, int idx)
unsigned char *p1, *p2;
for (i = 0; i < table_cnt; i++) {
-
+retry:
len = table[i]->len;
p1 = table[i]->sym;
@@ -585,6 +585,9 @@ static void compress_symbols(const unsigned char *str, int idx)
/* increase the counts for this symbol's new tokens */
learn_symbol(table[i]->sym, len);
+
+ /* May be more than one place that can be merged, try again */
+ goto retry;
}
}
--
2.25.1