diff options
Diffstat (limited to 'scripts/mod/modpost.c')
| -rw-r--r-- | scripts/mod/modpost.c | 15 | 
1 files changed, 13 insertions, 2 deletions
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index de499dce5265..b3dee80497cb 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -1015,9 +1015,20 @@ static int secref_whitelist(const char *fromsec, const char *fromsym,  				    "*_console")))  		return 0; -	/* symbols in data sections that may refer to meminit/exit sections */ +	/* symbols in data sections that may refer to meminit sections */  	if (match(fromsec, PATTERNS(DATA_SECTIONS)) && -	    match(tosec, PATTERNS(ALL_XXXINIT_SECTIONS, ALL_EXIT_SECTIONS)) && +	    match(tosec, PATTERNS(ALL_XXXINIT_SECTIONS, ALL_XXXEXIT_SECTIONS)) && +	    match(fromsym, PATTERNS("*driver"))) +		return 0; + +	/* +	 * symbols in data sections must not refer to .exit.*, but there are +	 * quite a few offenders, so hide these unless for W=1 builds until +	 * these are fixed. +	 */ +	if (!extra_warn && +	    match(fromsec, PATTERNS(DATA_SECTIONS)) && +	    match(tosec, PATTERNS(EXIT_SECTIONS)) &&  	    match(fromsym, PATTERNS("*driver")))  		return 0;  | 
