summaryrefslogtreecommitdiff
path: root/scripts/mod/modpost.c
diff options
context:
space:
mode:
authorMasahiro Yamada <masahiroy@kernel.org>2020-06-01 08:57:04 +0300
committerMasahiro Yamada <masahiroy@kernel.org>2020-06-03 07:22:18 +0300
commit2beee868997485a5718a349c7868260d5ee7378f (patch)
treefb1ea267324ae764cf41886312c9c2e46111db5e /scripts/mod/modpost.c
parent4e5ab74c3cbbe7ca2b907a86ce5140e442b340bf (diff)
downloadlinux-2beee868997485a5718a349c7868260d5ee7378f.tar.xz
modpost: load KBUILD_EXTRA_SYMBOLS files in order
Currently, modpost reads extra symbol dump files in the reverse order. If '-e foo -e bar' is given, modpost reads bar, foo, in this order. This is probably not a big deal, but there is no good reason to reverse the order. Read files in the given order. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Diffstat (limited to 'scripts/mod/modpost.c')
-rw-r--r--scripts/mod/modpost.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 160139508821..5224a02edbf2 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -2555,8 +2555,8 @@ int main(int argc, char **argv)
int opt;
int err;
int n;
- struct ext_sym_list *extsym_iter;
struct ext_sym_list *extsym_start = NULL;
+ struct ext_sym_list **extsym_iter = &extsym_start;
while ((opt = getopt(argc, argv, "i:e:mnsT:o:awENd:")) != -1) {
switch (opt) {
@@ -2566,11 +2566,9 @@ int main(int argc, char **argv)
break;
case 'e':
external_module = 1;
- extsym_iter =
- NOFAIL(malloc(sizeof(*extsym_iter)));
- extsym_iter->next = extsym_start;
- extsym_iter->file = optarg;
- extsym_start = extsym_iter;
+ *extsym_iter = NOFAIL(calloc(1, sizeof(**extsym_iter)));
+ (*extsym_iter)->file = optarg;
+ extsym_iter = &(*extsym_iter)->next;
break;
case 'm':
modversions = 1;
@@ -2610,10 +2608,12 @@ int main(int argc, char **argv)
if (kernel_read)
read_dump(kernel_read, 1);
while (extsym_start) {
+ struct ext_sym_list *tmp;
+
read_dump(extsym_start->file, 0);
- extsym_iter = extsym_start->next;
+ tmp = extsym_start->next;
free(extsym_start);
- extsym_start = extsym_iter;
+ extsym_start = tmp;
}
while (optind < argc)