diff options
Diffstat (limited to 'scripts/kallsyms.c')
| -rw-r--r-- | scripts/kallsyms.c | 13 | 
1 files changed, 12 insertions, 1 deletions
| diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c index 1f22a186c18c..5d554419170b 100644 --- a/scripts/kallsyms.c +++ b/scripts/kallsyms.c @@ -76,7 +76,6 @@ static void usage(void)  {  	fprintf(stderr, "Usage: kallsyms [--all-symbols] "  			"[--symbol-prefix=<prefix char>] " -			"[--page-offset=<CONFIG_PAGE_OFFSET>] "  			"[--base-relative] < in.map > out.S\n");  	exit(1);  } @@ -220,6 +219,10 @@ static int symbol_valid(struct sym_entry *s)  		"_SDA2_BASE_",		/* ppc */  		NULL }; +	static char *special_prefixes[] = { +		"__crc_",		/* modversions */ +		NULL }; +  	static char *special_suffixes[] = {  		"_veneer",		/* arm */  		"_from_arm",		/* arm */ @@ -260,6 +263,14 @@ static int symbol_valid(struct sym_entry *s)  		if (strcmp(sym_name, special_symbols[i]) == 0)  			return 0; +	for (i = 0; special_prefixes[i]; i++) { +		int l = strlen(special_prefixes[i]); + +		if (l <= strlen(sym_name) && +		    strncmp(sym_name, special_prefixes[i], l) == 0) +			return 0; +	} +  	for (i = 0; special_suffixes[i]; i++) {  		int l = strlen(sym_name) - strlen(special_suffixes[i]); | 
