sh: __cpuinit annotate the CPU init path.
All of the regular CPU init path needs to be __cpuinit annotated for CPU hotplug. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
@@ -102,6 +102,7 @@ struct task_struct;
|
|||||||
|
|
||||||
extern struct pt_regs fake_swapper_regs;
|
extern struct pt_regs fake_swapper_regs;
|
||||||
|
|
||||||
|
extern void cpu_init(void);
|
||||||
extern void cpu_probe(void);
|
extern void cpu_probe(void);
|
||||||
|
|
||||||
/* arch/sh/kernel/process.c */
|
/* arch/sh/kernel/process.c */
|
||||||
|
@@ -27,8 +27,6 @@
|
|||||||
#define CCN_CVR 0xff000040
|
#define CCN_CVR 0xff000040
|
||||||
#define CCN_PRR 0xff000044
|
#define CCN_PRR 0xff000044
|
||||||
|
|
||||||
asmlinkage void __init sh_cpu_init(void);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* User space process size: 2GB.
|
* User space process size: 2GB.
|
||||||
*
|
*
|
||||||
|
@@ -43,9 +43,9 @@
|
|||||||
* peripherals (nofpu, nodsp, and so forth).
|
* peripherals (nofpu, nodsp, and so forth).
|
||||||
*/
|
*/
|
||||||
#define onchip_setup(x) \
|
#define onchip_setup(x) \
|
||||||
static int x##_disabled __initdata = !cpu_has_##x; \
|
static int x##_disabled __cpuinitdata = !cpu_has_##x; \
|
||||||
\
|
\
|
||||||
static int __init x##_setup(char *opts) \
|
static int __cpuinit x##_setup(char *opts) \
|
||||||
{ \
|
{ \
|
||||||
x##_disabled = 1; \
|
x##_disabled = 1; \
|
||||||
return 1; \
|
return 1; \
|
||||||
@@ -59,7 +59,7 @@ onchip_setup(dsp);
|
|||||||
#define CPUOPM 0xff2f0000
|
#define CPUOPM 0xff2f0000
|
||||||
#define CPUOPM_RABD (1 << 5)
|
#define CPUOPM_RABD (1 << 5)
|
||||||
|
|
||||||
static void __init speculative_execution_init(void)
|
static void __cpuinit speculative_execution_init(void)
|
||||||
{
|
{
|
||||||
/* Clear RABD */
|
/* Clear RABD */
|
||||||
__raw_writel(__raw_readl(CPUOPM) & ~CPUOPM_RABD, CPUOPM);
|
__raw_writel(__raw_readl(CPUOPM) & ~CPUOPM_RABD, CPUOPM);
|
||||||
@@ -78,7 +78,7 @@ static void __init speculative_execution_init(void)
|
|||||||
#define EXPMASK_BRDSSLP (1 << 1)
|
#define EXPMASK_BRDSSLP (1 << 1)
|
||||||
#define EXPMASK_MMCAW (1 << 4)
|
#define EXPMASK_MMCAW (1 << 4)
|
||||||
|
|
||||||
static void __init expmask_init(void)
|
static void __cpuinit expmask_init(void)
|
||||||
{
|
{
|
||||||
unsigned long expmask = __raw_readl(EXPMASK);
|
unsigned long expmask = __raw_readl(EXPMASK);
|
||||||
|
|
||||||
@@ -217,7 +217,7 @@ static void detect_cache_shape(void)
|
|||||||
l2_cache_shape = -1; /* No S-cache */
|
l2_cache_shape = -1; /* No S-cache */
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init fpu_init(void)
|
static void __cpuinit fpu_init(void)
|
||||||
{
|
{
|
||||||
/* Disable the FPU */
|
/* Disable the FPU */
|
||||||
if (fpu_disabled && (current_cpu_data.flags & CPU_HAS_FPU)) {
|
if (fpu_disabled && (current_cpu_data.flags & CPU_HAS_FPU)) {
|
||||||
@@ -230,7 +230,7 @@ static void __init fpu_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_SH_DSP
|
#ifdef CONFIG_SH_DSP
|
||||||
static void __init release_dsp(void)
|
static void __cpuinit release_dsp(void)
|
||||||
{
|
{
|
||||||
unsigned long sr;
|
unsigned long sr;
|
||||||
|
|
||||||
@@ -244,7 +244,7 @@ static void __init release_dsp(void)
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init dsp_init(void)
|
static void __cpuinit dsp_init(void)
|
||||||
{
|
{
|
||||||
unsigned long sr;
|
unsigned long sr;
|
||||||
|
|
||||||
@@ -276,11 +276,11 @@ static void __init dsp_init(void)
|
|||||||
release_dsp();
|
release_dsp();
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
static inline void __init dsp_init(void) { }
|
static inline void __cpuinit dsp_init(void) { }
|
||||||
#endif /* CONFIG_SH_DSP */
|
#endif /* CONFIG_SH_DSP */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* sh_cpu_init
|
* cpu_init
|
||||||
*
|
*
|
||||||
* This is our initial entry point for each CPU, and is invoked on the
|
* This is our initial entry point for each CPU, and is invoked on the
|
||||||
* boot CPU prior to calling start_kernel(). For SMP, a combination of
|
* boot CPU prior to calling start_kernel(). For SMP, a combination of
|
||||||
@@ -295,7 +295,7 @@ static inline void __init dsp_init(void) { }
|
|||||||
* Each processor family is still responsible for doing its own probing
|
* Each processor family is still responsible for doing its own probing
|
||||||
* and cache configuration in cpu_probe().
|
* and cache configuration in cpu_probe().
|
||||||
*/
|
*/
|
||||||
asmlinkage void __init sh_cpu_init(void)
|
asmlinkage void __cpuinit cpu_init(void)
|
||||||
{
|
{
|
||||||
current_thread_info()->cpu = hard_smp_processor_id();
|
current_thread_info()->cpu = hard_smp_processor_id();
|
||||||
|
|
||||||
|
@@ -335,7 +335,7 @@ ENTRY(stack_start)
|
|||||||
3: .long __bss_start
|
3: .long __bss_start
|
||||||
4: .long _end
|
4: .long _end
|
||||||
5: .long start_kernel
|
5: .long start_kernel
|
||||||
6: .long sh_cpu_init
|
6: .long cpu_init
|
||||||
7: .long init_thread_union
|
7: .long init_thread_union
|
||||||
|
|
||||||
#ifdef CONFIG_PMB
|
#ifdef CONFIG_PMB
|
||||||
|
@@ -89,7 +89,7 @@ void arch_task_cache_init(void)
|
|||||||
# define HAVE_SOFTFP 0
|
# define HAVE_SOFTFP 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void init_thread_xstate(void)
|
void __cpuinit init_thread_xstate(void)
|
||||||
{
|
{
|
||||||
if (boot_cpu_data.flags & CPU_HAS_FPU)
|
if (boot_cpu_data.flags & CPU_HAS_FPU)
|
||||||
xstate_size = sizeof(struct sh_fpu_hard_struct);
|
xstate_size = sizeof(struct sh_fpu_hard_struct);
|
||||||
|
Reference in New Issue
Block a user