Commit 4603f53a authored by Paul Gortmaker's avatar Paul Gortmaker

sh: delete __cpuinit usage from all sh files

The __cpuinit type of throwaway sections might have made sense
some time ago when RAM was more constrained, but now the savings
do not offset the cost and complications.  For example, the fix in
commit 5e427ec2 ("x86: Fix bit corruption at CPU resume time")
is a good example of the nasty type of bugs that can be created
with improper use of the various __init prefixes.

After a discussion on LKML[1] it was decided that cpuinit should go
the way of devinit and be phased out.  Once all the users are gone,
we can then finally remove the macros themselves from linux/init.h.

Note that some harmless section mismatch warnings may result, since
notify_cpu_starting() and cpu_up() are arch independent (kernel/cpu.c)
are flagged as __cpuinit  -- so if we remove the __cpuinit from
arch specific callers, we will also get section mismatch warnings.
As an intermediate step, we intend to turn the linux/init.h cpuinit
content into no-ops as early as possible, since that will get rid
of these warnings.  In any case, they are temporary and harmless.

This removes all the arch/sh uses of the __cpuinit macros from
all C files.  Currently sh does not have any __CPUINIT used in
assembly files.

[1] https://lkml.org/lkml/2013/5/20/589

Cc: Paul Mundt <lethal@linux-sh.org>
Cc: linux-sh@vger.kernel.org
Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
parent e2741f17
......@@ -43,9 +43,9 @@
* peripherals (nofpu, nodsp, and so forth).
*/
#define onchip_setup(x) \
static int x##_disabled __cpuinitdata = !cpu_has_##x; \
static int x##_disabled = !cpu_has_##x; \
\
static int __cpuinit x##_setup(char *opts) \
static int x##_setup(char *opts) \
{ \
x##_disabled = 1; \
return 1; \
......@@ -59,7 +59,7 @@ onchip_setup(dsp);
#define CPUOPM 0xff2f0000
#define CPUOPM_RABD (1 << 5)
static void __cpuinit speculative_execution_init(void)
static void speculative_execution_init(void)
{
/* Clear RABD */
__raw_writel(__raw_readl(CPUOPM) & ~CPUOPM_RABD, CPUOPM);
......@@ -78,7 +78,7 @@ static void __cpuinit speculative_execution_init(void)
#define EXPMASK_BRDSSLP (1 << 1)
#define EXPMASK_MMCAW (1 << 4)
static void __cpuinit expmask_init(void)
static void expmask_init(void)
{
unsigned long expmask = __raw_readl(EXPMASK);
......@@ -217,7 +217,7 @@ static void detect_cache_shape(void)
l2_cache_shape = -1; /* No S-cache */
}
static void __cpuinit fpu_init(void)
static void fpu_init(void)
{
/* Disable the FPU */
if (fpu_disabled && (current_cpu_data.flags & CPU_HAS_FPU)) {
......@@ -230,7 +230,7 @@ static void __cpuinit fpu_init(void)
}
#ifdef CONFIG_SH_DSP
static void __cpuinit release_dsp(void)
static void release_dsp(void)
{
unsigned long sr;
......@@ -244,7 +244,7 @@ static void __cpuinit release_dsp(void)
);
}
static void __cpuinit dsp_init(void)
static void dsp_init(void)
{
unsigned long sr;
......@@ -276,7 +276,7 @@ static void __cpuinit dsp_init(void)
release_dsp();
}
#else
static inline void __cpuinit dsp_init(void) { }
static inline void dsp_init(void) { }
#endif /* CONFIG_SH_DSP */
/**
......@@ -295,7 +295,7 @@ static inline void __cpuinit dsp_init(void) { }
* Each processor family is still responsible for doing its own probing
* and cache configuration in cpu_probe().
*/
asmlinkage void __cpuinit cpu_init(void)
asmlinkage void cpu_init(void)
{
current_thread_info()->cpu = hard_smp_processor_id();
......
......@@ -13,7 +13,7 @@
#include <asm/processor.h>
#include <asm/cache.h>
void __cpuinit cpu_probe(void)
void cpu_probe(void)
{
#if defined(CONFIG_CPU_SUBTYPE_SH7619)
boot_cpu_data.type = CPU_SH7619;
......
......@@ -13,7 +13,7 @@
#include <asm/processor.h>
#include <asm/cache.h>
void __cpuinit cpu_probe(void)
void cpu_probe(void)
{
boot_cpu_data.family = CPU_FAMILY_SH2A;
......
......@@ -16,7 +16,7 @@
#include <asm/cache.h>
#include <asm/io.h>
void __cpuinit cpu_probe(void)
void cpu_probe(void)
{
unsigned long addr0, addr1, data0, data1, data2, data3;
......
......@@ -15,7 +15,7 @@
#include <asm/processor.h>
#include <asm/cache.h>
void __cpuinit cpu_probe(void)
void cpu_probe(void)
{
unsigned long pvr, prr, cvr;
unsigned long size;
......
......@@ -124,7 +124,7 @@ static void shx3_update_boot_vector(unsigned int cpu)
__raw_writel(STBCR_RESET, STBCR_REG(cpu));
}
static int __cpuinit
static int
shx3_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)
{
unsigned int cpu = (unsigned int)hcpu;
......@@ -143,11 +143,11 @@ shx3_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)
return NOTIFY_OK;
}
static struct notifier_block __cpuinitdata shx3_cpu_notifier = {
static struct notifier_block shx3_cpu_notifier = {
.notifier_call = shx3_cpu_callback,
};
static int __cpuinit register_shx3_cpu_notifier(void)
static int register_shx3_cpu_notifier(void)
{
register_hotcpu_notifier(&shx3_cpu_notifier);
return 0;
......
......@@ -17,7 +17,7 @@
#include <asm/cache.h>
#include <asm/tlb.h>
void __cpuinit cpu_probe(void)
void cpu_probe(void)
{
unsigned long long cir;
......
......@@ -367,7 +367,7 @@ static void sh_pmu_setup(int cpu)
memset(cpuhw, 0, sizeof(struct cpu_hw_events));
}
static int __cpuinit
static int
sh_pmu_notifier(struct notifier_block *self, unsigned long action, void *hcpu)
{
unsigned int cpu = (long)hcpu;
......@@ -384,7 +384,7 @@ sh_pmu_notifier(struct notifier_block *self, unsigned long action, void *hcpu)
return NOTIFY_OK;
}
int __cpuinit register_sh_pmu(struct sh_pmu *_pmu)
int register_sh_pmu(struct sh_pmu *_pmu)
{
if (sh_pmu)
return -EBUSY;
......
......@@ -65,7 +65,7 @@ void arch_task_cache_init(void)
# define HAVE_SOFTFP 0
#endif
void __cpuinit init_thread_xstate(void)
void init_thread_xstate(void)
{
if (boot_cpu_data.flags & CPU_HAS_FPU)
xstate_size = sizeof(struct sh_fpu_hard_struct);
......
......@@ -172,7 +172,7 @@ void __init check_for_initrd(void)
#endif
}
void __cpuinit calibrate_delay(void)
void calibrate_delay(void)
{
struct clk *clk = clk_get(NULL, "cpu_clk");
......
......@@ -37,7 +37,7 @@ struct plat_smp_ops *mp_ops = NULL;
/* State of each CPU */
DEFINE_PER_CPU(int, cpu_state) = { 0 };
void __cpuinit register_smp_ops(struct plat_smp_ops *ops)
void register_smp_ops(struct plat_smp_ops *ops)
{
if (mp_ops)
printk(KERN_WARNING "Overriding previously set SMP ops\n");
......@@ -45,7 +45,7 @@ void __cpuinit register_smp_ops(struct plat_smp_ops *ops)
mp_ops = ops;
}
static inline void __cpuinit smp_store_cpu_info(unsigned int cpu)
static inline void smp_store_cpu_info(unsigned int cpu)
{
struct sh_cpuinfo *c = cpu_data + cpu;
......@@ -174,7 +174,7 @@ void native_play_dead(void)
}
#endif
asmlinkage void __cpuinit start_secondary(void)
asmlinkage void start_secondary(void)
{
unsigned int cpu = smp_processor_id();
struct mm_struct *mm = &init_mm;
......@@ -215,7 +215,7 @@ extern struct {
void *thread_info;
} stack_start;
int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tsk)
int __cpu_up(unsigned int cpu, struct task_struct *tsk)
{
unsigned long timeout;
......
......@@ -741,7 +741,7 @@ asmlinkage void do_exception_error(unsigned long r4, unsigned long r5,
die_if_kernel("exception", regs, ex);
}
void __cpuinit per_cpu_trap_init(void)
void per_cpu_trap_init(void)
{
extern void *vbr_base;
......
......@@ -810,7 +810,7 @@ asmlinkage void do_debug_interrupt(unsigned long code, struct pt_regs *regs)
poke_real_address_q(DM_EXP_CAUSE_PHY, 0x0);
}
void __cpuinit per_cpu_trap_init(void)
void per_cpu_trap_init(void)
{
/* Nothing to do for now, VBR initialization later. */
}
......@@ -17,7 +17,7 @@
/**
* sh64_tlb_init - Perform initial setup for the DTLB and ITLB.
*/
int __cpuinit sh64_tlb_init(void)
int sh64_tlb_init(void)
{
/* Assign some sane DTLB defaults */
cpu_data->dtlb.entries = 64;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment