kallsyms: Fix kallsyms_selftest failure
[linux-2.6-block.git] / kernel / kallsyms.c
index 016d997131d4330a002f3ebc58e2801f6af5f980..e12d26c10dbab2e51ed64b8bc132ea00ac22b7a4 100644 (file)
@@ -188,16 +188,13 @@ static bool cleanup_symbol_name(char *s)
 
 static int compare_symbol_name(const char *name, char *namebuf)
 {
-       int ret;
-
-       ret = strcmp(name, namebuf);
-       if (!ret)
-               return ret;
-
-       if (cleanup_symbol_name(namebuf) && !strcmp(name, namebuf))
-               return 0;
-
-       return ret;
+       /* The kallsyms_seqs_of_names is sorted based on names after
+        * cleanup_symbol_name() (see scripts/kallsyms.c) if clang lto is enabled.
+        * To ensure correct bisection in kallsyms_lookup_names(), do
+        * cleanup_symbol_name(namebuf) before comparing name and namebuf.
+        */
+       cleanup_symbol_name(namebuf);
+       return strcmp(name, namebuf);
 }
 
 static unsigned int get_symbol_seq(int index)