mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 08:44:41 +00:00 
			
		
		
		
	calibrate_delay() must be __cpuinit
calibrate_delay() must be __cpuinit, not __{dev,}init.
I've verified that this is correct for all users.
While doing the latter, I also did the following cleanups:
- remove pointless additional prototypes in C files
- ensure all users #include <linux/delay.h>
This fixes the following section mismatches with CONFIG_HOTPLUG=n,
CONFIG_HOTPLUG_CPU=y:
WARNING: vmlinux.o(.text+0x1128d): Section mismatch: reference to .init.text.1:calibrate_delay (between 'check_cx686_slop' and 'set_cx86_reorder')
WARNING: vmlinux.o(.text+0x25102): Section mismatch: reference to .init.text.1:calibrate_delay (between 'smp_callin' and 'cpu_coregroup_map')
Signed-off-by: Adrian Bunk <bunk@kernel.org>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Richard Henderson <rth@twiddle.net>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Christian Zankel <chris@zankel.net>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
			
			
This commit is contained in:
		
							parent
							
								
									eb38a996eb
								
							
						
					
					
						commit
						6c81c32f96
					
				
					 14 changed files with 9 additions and 28 deletions
				
			
		|  | @ -77,10 +77,6 @@ int smp_num_probed;		/* Internal processor count */ | |||
| int smp_num_cpus = 1;		/* Number that came online.  */ | ||||
| EXPORT_SYMBOL(smp_num_cpus); | ||||
| 
 | ||||
| extern void calibrate_delay(void); | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| /*
 | ||||
|  * Called by both boot and secondaries to move global data into | ||||
|  *  per-processor storage. | ||||
|  |  | |||
|  | @ -708,7 +708,7 @@ static void __init reserve_dma_coherent(void) | |||
| /*
 | ||||
|  * calibrate the delay loop | ||||
|  */ | ||||
| void __init calibrate_delay(void) | ||||
| void __cpuinit calibrate_delay(void) | ||||
| { | ||||
| 	loops_per_jiffy = __delay_loops_MHz * (1000000 / HZ); | ||||
| 
 | ||||
|  |  | |||
|  | @ -120,7 +120,6 @@ static volatile unsigned long go[SLAVE + 1]; | |||
| 
 | ||||
| #define DEBUG_ITC_SYNC	0 | ||||
| 
 | ||||
| extern void __devinit calibrate_delay (void); | ||||
| extern void start_ap (void); | ||||
| extern unsigned long ia64_iobase; | ||||
| 
 | ||||
|  |  | |||
|  | @ -52,7 +52,6 @@ int __cpu_logical_map[NR_CPUS];		/* Map logical to physical */ | |||
| EXPORT_SYMBOL(phys_cpu_present_map); | ||||
| EXPORT_SYMBOL(cpu_online_map); | ||||
| 
 | ||||
| extern void __init calibrate_delay(void); | ||||
| extern void cpu_idle(void); | ||||
| 
 | ||||
| /* Number of TCs (or siblings in Intel speak) per CPU core */ | ||||
|  |  | |||
|  | @ -113,8 +113,6 @@ static inline void debug_calc_bogomips(void) | |||
| 	 * result. We backup/restore the value to avoid affecting the | ||||
| 	 * core cpufreq framework's own calculation. | ||||
| 	 */ | ||||
| 	extern void calibrate_delay(void); | ||||
| 
 | ||||
| 	unsigned long save_lpj = loops_per_jiffy; | ||||
| 	calibrate_delay(); | ||||
| 	loops_per_jiffy = save_lpj; | ||||
|  |  | |||
|  | @ -19,12 +19,12 @@ | |||
| #include <linux/mm.h> | ||||
| #include <linux/swap.h> | ||||
| #include <linux/profile.h> | ||||
| #include <linux/delay.h> | ||||
| 
 | ||||
| #include <asm/ptrace.h> | ||||
| #include <asm/atomic.h> | ||||
| #include <asm/irq_regs.h> | ||||
| 
 | ||||
| #include <asm/delay.h> | ||||
| #include <asm/irq.h> | ||||
| #include <asm/page.h> | ||||
| #include <asm/pgalloc.h> | ||||
|  | @ -41,8 +41,6 @@ | |||
| 
 | ||||
| extern ctxd_t *srmmu_ctx_table_phys; | ||||
| 
 | ||||
| extern void calibrate_delay(void); | ||||
| 
 | ||||
| static volatile int smp_processors_ready = 0; | ||||
| static int smp_highest_cpu; | ||||
| extern volatile unsigned long cpu_callin_map[NR_CPUS]; | ||||
|  |  | |||
|  | @ -16,6 +16,8 @@ | |||
| #include <linux/mm.h> | ||||
| #include <linux/swap.h> | ||||
| #include <linux/profile.h> | ||||
| #include <linux/delay.h> | ||||
| 
 | ||||
| #include <asm/cacheflush.h> | ||||
| #include <asm/tlbflush.h> | ||||
| #include <asm/irq_regs.h> | ||||
|  | @ -23,7 +25,6 @@ | |||
| #include <asm/ptrace.h> | ||||
| #include <asm/atomic.h> | ||||
| 
 | ||||
| #include <asm/delay.h> | ||||
| #include <asm/irq.h> | ||||
| #include <asm/page.h> | ||||
| #include <asm/pgalloc.h> | ||||
|  | @ -39,8 +40,6 @@ | |||
| 
 | ||||
| extern ctxd_t *srmmu_ctx_table_phys; | ||||
| 
 | ||||
| extern void calibrate_delay(void); | ||||
| 
 | ||||
| extern volatile unsigned long cpu_callin_map[NR_CPUS]; | ||||
| extern unsigned char boot_cpu_id; | ||||
| 
 | ||||
|  |  | |||
|  | @ -46,8 +46,6 @@ | |||
| #include <asm/ldc.h> | ||||
| #include <asm/hypervisor.h> | ||||
| 
 | ||||
| extern void calibrate_delay(void); | ||||
| 
 | ||||
| int sparc64_multi_core __read_mostly; | ||||
| 
 | ||||
| cpumask_t cpu_possible_map __read_mostly = CPU_MASK_NONE; | ||||
|  |  | |||
|  | @ -83,8 +83,6 @@ static char cyrix_model_mult2[] __cpuinitdata = "12233445"; | |||
|  * FIXME: our newer udelay uses the tsc. We don't need to frob with SLOP | ||||
|  */ | ||||
| 
 | ||||
| extern void calibrate_delay(void) __init; | ||||
| 
 | ||||
| static void __cpuinit check_cx686_slop(struct cpuinfo_x86 *c) | ||||
| { | ||||
| 	unsigned long flags; | ||||
|  |  | |||
|  | @ -202,8 +202,6 @@ valid_k7: | |||
| 	; | ||||
| } | ||||
| 
 | ||||
| extern void calibrate_delay(void); | ||||
| 
 | ||||
| static atomic_t init_deasserted; | ||||
| 
 | ||||
| static void __cpuinit smp_callin(void) | ||||
|  |  | |||
|  | @ -444,8 +444,6 @@ static __u32 __init setup_trampoline(void) | |||
| static void __init start_secondary(void *unused) | ||||
| { | ||||
| 	__u8 cpuid = hard_smp_processor_id(); | ||||
| 	/* external functions not defined in the headers */ | ||||
| 	extern void calibrate_delay(void); | ||||
| 
 | ||||
| 	cpu_init(); | ||||
| 
 | ||||
|  |  | |||
|  | @ -204,7 +204,7 @@ again: | |||
| } | ||||
| 
 | ||||
| #ifndef CONFIG_GENERIC_CALIBRATE_DELAY | ||||
| void __devinit calibrate_delay(void) | ||||
| void __cpuinit calibrate_delay(void) | ||||
| { | ||||
| 	loops_per_jiffy = CCOUNT_PER_JIFFY; | ||||
| 	printk("Calibrating delay loop (skipped)... " | ||||
|  |  | |||
|  | @ -422,7 +422,7 @@ void s390_adjust_jiffies(void) | |||
| /*
 | ||||
|  * calibrate the delay loop | ||||
|  */ | ||||
| void __init calibrate_delay(void) | ||||
| void __cpuinit calibrate_delay(void) | ||||
| { | ||||
| 	s390_adjust_jiffies(); | ||||
| 	/* Print the good old Bogomips line .. */ | ||||
|  |  | |||
|  | @ -28,7 +28,7 @@ __setup("lpj=", lpj_setup); | |||
| #define DELAY_CALIBRATION_TICKS			((HZ < 100) ? 1 : (HZ/100)) | ||||
| #define MAX_DIRECT_CALIBRATION_RETRIES		5 | ||||
| 
 | ||||
| static unsigned long __devinit calibrate_delay_direct(void) | ||||
| static unsigned long __cpuinit calibrate_delay_direct(void) | ||||
| { | ||||
| 	unsigned long pre_start, start, post_start; | ||||
| 	unsigned long pre_end, end, post_end; | ||||
|  | @ -101,7 +101,7 @@ static unsigned long __devinit calibrate_delay_direct(void) | |||
| 	return 0; | ||||
| } | ||||
| #else | ||||
| static unsigned long __devinit calibrate_delay_direct(void) {return 0;} | ||||
| static unsigned long __cpuinit calibrate_delay_direct(void) {return 0;} | ||||
| #endif | ||||
| 
 | ||||
| /*
 | ||||
|  | @ -111,7 +111,7 @@ static unsigned long __devinit calibrate_delay_direct(void) {return 0;} | |||
|  */ | ||||
| #define LPS_PREC 8 | ||||
| 
 | ||||
| void __devinit calibrate_delay(void) | ||||
| void __cpuinit calibrate_delay(void) | ||||
| { | ||||
| 	unsigned long ticks, loopbit; | ||||
| 	int lps_precision = LPS_PREC; | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Adrian Bunk
						Adrian Bunk