|
@@ -85,8 +85,17 @@ static int prefix_underscores_count(const char *str)
|
|
return tail - str;
|
|
return tail - str;
|
|
}
|
|
}
|
|
|
|
|
|
-#define SYMBOL_A 0
|
|
|
|
-#define SYMBOL_B 1
|
|
|
|
|
|
+int __weak arch__choose_best_symbol(struct symbol *syma,
|
|
|
|
+ struct symbol *symb __maybe_unused)
|
|
|
|
+{
|
|
|
|
+ /* Avoid "SyS" kernel syscall aliases */
|
|
|
|
+ if (strlen(syma->name) >= 3 && !strncmp(syma->name, "SyS", 3))
|
|
|
|
+ return SYMBOL_B;
|
|
|
|
+ if (strlen(syma->name) >= 10 && !strncmp(syma->name, "compat_SyS", 10))
|
|
|
|
+ return SYMBOL_B;
|
|
|
|
+
|
|
|
|
+ return SYMBOL_A;
|
|
|
|
+}
|
|
|
|
|
|
static int choose_best_symbol(struct symbol *syma, struct symbol *symb)
|
|
static int choose_best_symbol(struct symbol *syma, struct symbol *symb)
|
|
{
|
|
{
|
|
@@ -134,13 +143,7 @@ static int choose_best_symbol(struct symbol *syma, struct symbol *symb)
|
|
else if (na < nb)
|
|
else if (na < nb)
|
|
return SYMBOL_B;
|
|
return SYMBOL_B;
|
|
|
|
|
|
- /* Avoid "SyS" kernel syscall aliases */
|
|
|
|
- if (na >= 3 && !strncmp(syma->name, "SyS", 3))
|
|
|
|
- return SYMBOL_B;
|
|
|
|
- if (na >= 10 && !strncmp(syma->name, "compat_SyS", 10))
|
|
|
|
- return SYMBOL_B;
|
|
|
|
-
|
|
|
|
- return SYMBOL_A;
|
|
|
|
|
|
+ return arch__choose_best_symbol(syma, symb);
|
|
}
|
|
}
|
|
|
|
|
|
void symbols__fixup_duplicate(struct rb_root *symbols)
|
|
void symbols__fixup_duplicate(struct rb_root *symbols)
|