History

module: Move is_arm_mapping_symbol() to module_symbol.h

In order to avoid duplicated code, move is_arm_mapping_symbol() to include/linux/module_symbol.h, then remove is_arm_mapping_symbol() in the other places.

Tiezhu Yang committed 3 years ago

Commit 987d2e01 parent 87e5b1e3 files · +17 −22Browse files

Unified · Split

3 files
  1. include/linux/module_symbol.h +15 −0
  2. kernel/module/kallsyms.c +1 −13
  3. scripts/mod/modpost.c +1 −9
include/linux/module_symbol.h+15−0
@@ -0,0 +1,15 @@
1+/* SPDX-License-Identifier: GPL-2.0-only */
2+#ifndef _LINUX_MODULE_SYMBOL_H
3+#define _LINUX_MODULE_SYMBOL_H
4+
5+/* This ignores the intensely annoying "mapping symbols" found in ELF files. */
6+static inline int is_arm_mapping_symbol(const char *str)
7+{
8+ if (str[0] == '.' && str[1] == 'L')
9+ return true;
10+ return str[0] == '$' &&
11+ (str[1] == 'a' || str[1] == 'd' || str[1] == 't' || str[1] == 'x')
12+ && (str[2] == '\0' || str[2] == '.');
13+}
14+
15+#endif /* _LINUX_MODULE_SYMBOL_H */
kernel/module/kallsyms.c+1−13
@@ -6,6 +6,7 @@ · 5 unmodified lines
66 */
77
88 #include <linux/module.h>
9+#include <linux/module_symbol.h>
910 #include <linux/kallsyms.h>
1011 #include <linux/buildid.h>
1112 #include <linux/bsearch.h>
@@ -243,19 +244,6 @@ void init_build_id(struct module *mod, const struct load_info *info) · 231 unmodified lines
243244 }
244245 #endif
245246
246−/*
247− * This ignores the intensely annoying "mapping symbols" found
248− * in ARM ELF files: $a, $t and $d.
249− */
250−static inline int is_arm_mapping_symbol(const char *str)
251−{
252− if (str[0] == '.' && str[1] == 'L')
253− return true;
254− return str[0] == '$' &&
255− (str[1] == 'a' || str[1] == 'd' || str[1] == 't' || str[1] == 'x')
256− && (str[2] == '\0' || str[2] == '.');
257−}
258−
259247 static const char *kallsyms_symbol_name(struct mod_kallsyms *kallsyms, unsigned int symnum)
260248 {
261249 return kallsyms->strtab + kallsyms->symtab[symnum].st_name;
scripts/mod/modpost.c+1−9
@@ -22,6 +22,7 @@ · 21 unmodified lines
2222 #include <errno.h>
2323 #include "modpost.h"
2424 #include "../../include/linux/license.h"
25+#include "../../include/linux/module_symbol.h"
2526
2627 /* Are we using CONFIG_MODVERSIONS? */
2728 static bool modversions;
@@ -1112,15 +1113,6 @@ static int secref_whitelist(const struct sectioncheck *mismatch, · 1084 unmodified lines
11121113 return 1;
11131114 }
11141115
1115−static inline int is_arm_mapping_symbol(const char *str)
1116−{
1117− if (str[0] == '.' && str[1] == 'L')
1118− return true;
1119− return str[0] == '$' &&
1120− (str[1] == 'a' || str[1] == 'd' || str[1] == 't' || str[1] == 'x')
1121− && (str[2] == '\0' || str[2] == '.');
1122−}
1123−
11241116 /*
11251117 * If there's no name there, ignore it; likewise, ignore it if it's
11261118 * one of the magic symbols emitted used by current ARM tools.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t