Don't mark cpufreq_stats_free_table with __cpuexit
PATCH 1/1 Don't mark cpufreq_stats_free_table with __cpuexit
Commit 55395ae72b6e5ae614d28df74158c47454652583 introduced:
.exit.text' referenced in section .init.text' of drivers/built-in.o: defined in discarded section `.exit.text' of drivers/built-in.o
Never mark functions that may be called during run time or initialisation time with a section that may be (or have been) discarded.
It was mentioned in the commit comments that an exit-section function was being called from an init-section function. This should _always_ result in the patch being rejected. It's just a big no no.
drivers/cpufreq/cpufreq_stats.c +2 -1
@@ -164,7 +164,8 @@ freq_table_get_index(struct cpufreq_stats *stat, unsigned int freq)return -1 ; } -static void __cpuexit cpufreq_stats_free_table(unsigned int cpu) +/* functions called from init paths can not be marked for an exit section */ +static void /*__cpuexit*/ cpufreq_stats_free_table (unsigned int cpu) {struct cpufreq_stats *stat = cpufreq_stats_table[cpu];struct cpufreq_policy *policy =cpufreq_cpu_get (cpu);
Signature · 3 lines
Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of:
Quoted 20 lines · On Fri, 14 Dec 2007 13:45:48 +0000 Russell King <[email protected]>…
Commit
55395ae72b6e5ae614d28df74158c47454652583introduced:
.exit.text' referenced in section.init.text' ofdrivers/built-in.o: defined in discarded section `.exit.text' ofdrivers/built-in.oNever mark functions that may be called during run time or initialisation time with a section that may be (or have been) discarded.
It was mentioned in the commit comments that an exit-section function was being called from an init-section function. This should _always_ result in the patch being rejected. It's just a big no no.
Signed-off-by Russell King <[email protected]>drivers/cpufreq/cpufreq_stats.c +0
-0
drivers/cpufreq/cpufreq_stats.c freq_table_get_index(struct cpufreq_stats *stat, unsigned int freq) · line 171
Quoted 9 lines
drivers/cpufreq/cpufreq_stats.c +2
-1@@ -164,7 +164,8 @@ freq_table_get_index(struct cpufreq_stats *stat, unsigned int freq)return -1 ; } -static void __cpuexit cpufreq_stats_free_table(unsigned int cpu) +/* functions called from init paths can not be marked for an exit section */ +static void /*__cpuexit*/ cpufreq_stats_free_table (unsigned int cpu) {struct cpufreq_stats *stat = cpufreq_stats_table[cpu];struct cpufreq_policy *policy =cpufreq_cpu_get (cpu);
yu, thanks, I have a fix for this from Adrian queued for when Linus resurfaces.