[PATCH v3 2/8] scripts/kallsyms: ensure that all possible combinations are compressed

From: Zhen Lei
Date: Mon Sep 19 2022 - 11:17:12 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