Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 061d19f2 authored by Paul Gortmaker's avatar Paul Gortmaker Committed by Benjamin Herrenschmidt
Browse files

powerpc: Delete __cpuinit usage from all users

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.

This removes all the powerpc uses of the __cpuinit macros.  There
are no __CPUINIT users in assembly files in powerpc.

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



Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Josh Boyer <jwboyer@gmail.com>
Cc: Matt Porter <mporter@kernel.crashing.org>
Cc: Kumar Gala <galak@kernel.crashing.org>
Cc: linuxppc-dev@lists.ozlabs.org
Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent 5eb969d0
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -350,8 +350,8 @@ static inline u32 rtas_config_addr(int busno, int devfn, int reg)
			(devfn << 8) | (reg & 0xff);
}

extern void __cpuinit rtas_give_timebase(void);
extern void __cpuinit rtas_take_timebase(void);
extern void rtas_give_timebase(void);
extern void rtas_take_timebase(void);

#ifdef CONFIG_PPC_RTAS
static inline int page_is_rtas_user_buf(unsigned long pfn)
+1 −1
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ extern unsigned long vdso64_rt_sigtramp;
extern unsigned long vdso32_sigtramp;
extern unsigned long vdso32_rt_sigtramp;

int __cpuinit vdso_getcpu_init(void);
int vdso_getcpu_init(void);

#else /* __ASSEMBLY__ */

+21 −15
Original line number Diff line number Diff line
@@ -131,7 +131,8 @@ static const char *cache_type_string(const struct cache *cache)
	return cache_type_info[cache->type].name;
}

static void __cpuinit cache_init(struct cache *cache, int type, int level, struct device_node *ofnode)
static void cache_init(struct cache *cache, int type, int level,
		       struct device_node *ofnode)
{
	cache->type = type;
	cache->level = level;
@@ -140,7 +141,7 @@ static void __cpuinit cache_init(struct cache *cache, int type, int level, struc
	list_add(&cache->list, &cache_list);
}

static struct cache *__cpuinit new_cache(int type, int level, struct device_node *ofnode)
static struct cache *new_cache(int type, int level, struct device_node *ofnode)
{
	struct cache *cache;

@@ -324,7 +325,8 @@ static bool cache_node_is_unified(const struct device_node *np)
	return of_get_property(np, "cache-unified", NULL);
}

static struct cache *__cpuinit cache_do_one_devnode_unified(struct device_node *node, int level)
static struct cache *cache_do_one_devnode_unified(struct device_node *node,
						  int level)
{
	struct cache *cache;

@@ -335,7 +337,8 @@ static struct cache *__cpuinit cache_do_one_devnode_unified(struct device_node *
	return cache;
}

static struct cache *__cpuinit cache_do_one_devnode_split(struct device_node *node, int level)
static struct cache *cache_do_one_devnode_split(struct device_node *node,
						int level)
{
	struct cache *dcache, *icache;

@@ -357,7 +360,7 @@ static struct cache *__cpuinit cache_do_one_devnode_split(struct device_node *no
	return NULL;
}

static struct cache *__cpuinit cache_do_one_devnode(struct device_node *node, int level)
static struct cache *cache_do_one_devnode(struct device_node *node, int level)
{
	struct cache *cache;

@@ -369,7 +372,8 @@ static struct cache *__cpuinit cache_do_one_devnode(struct device_node *node, in
	return cache;
}

static struct cache *__cpuinit cache_lookup_or_instantiate(struct device_node *node, int level)
static struct cache *cache_lookup_or_instantiate(struct device_node *node,
						 int level)
{
	struct cache *cache;

@@ -385,7 +389,7 @@ static struct cache *__cpuinit cache_lookup_or_instantiate(struct device_node *n
	return cache;
}

static void __cpuinit link_cache_lists(struct cache *smaller, struct cache *bigger)
static void link_cache_lists(struct cache *smaller, struct cache *bigger)
{
	while (smaller->next_local) {
		if (smaller->next_local == bigger)
@@ -396,13 +400,13 @@ static void __cpuinit link_cache_lists(struct cache *smaller, struct cache *bigg
	smaller->next_local = bigger;
}

static void __cpuinit do_subsidiary_caches_debugcheck(struct cache *cache)
static void do_subsidiary_caches_debugcheck(struct cache *cache)
{
	WARN_ON_ONCE(cache->level != 1);
	WARN_ON_ONCE(strcmp(cache->ofnode->type, "cpu"));
}

static void __cpuinit do_subsidiary_caches(struct cache *cache)
static void do_subsidiary_caches(struct cache *cache)
{
	struct device_node *subcache_node;
	int level = cache->level;
@@ -423,7 +427,7 @@ static void __cpuinit do_subsidiary_caches(struct cache *cache)
	}
}

static struct cache *__cpuinit cache_chain_instantiate(unsigned int cpu_id)
static struct cache *cache_chain_instantiate(unsigned int cpu_id)
{
	struct device_node *cpu_node;
	struct cache *cpu_cache = NULL;
@@ -448,7 +452,7 @@ static struct cache *__cpuinit cache_chain_instantiate(unsigned int cpu_id)
	return cpu_cache;
}

static struct cache_dir *__cpuinit cacheinfo_create_cache_dir(unsigned int cpu_id)
static struct cache_dir *cacheinfo_create_cache_dir(unsigned int cpu_id)
{
	struct cache_dir *cache_dir;
	struct device *dev;
@@ -653,7 +657,7 @@ static struct kobj_type cache_index_type = {
	.default_attrs = cache_index_default_attrs,
};

static void __cpuinit cacheinfo_create_index_opt_attrs(struct cache_index_dir *dir)
static void cacheinfo_create_index_opt_attrs(struct cache_index_dir *dir)
{
	const char *cache_name;
	const char *cache_type;
@@ -696,7 +700,8 @@ static void __cpuinit cacheinfo_create_index_opt_attrs(struct cache_index_dir *d
	kfree(buf);
}

static void __cpuinit cacheinfo_create_index_dir(struct cache *cache, int index, struct cache_dir *cache_dir)
static void cacheinfo_create_index_dir(struct cache *cache, int index,
				       struct cache_dir *cache_dir)
{
	struct cache_index_dir *index_dir;
	int rc;
@@ -722,7 +727,8 @@ static void __cpuinit cacheinfo_create_index_dir(struct cache *cache, int index,
	kfree(index_dir);
}

static void __cpuinit cacheinfo_sysfs_populate(unsigned int cpu_id, struct cache *cache_list)
static void cacheinfo_sysfs_populate(unsigned int cpu_id,
				     struct cache *cache_list)
{
	struct cache_dir *cache_dir;
	struct cache *cache;
@@ -740,7 +746,7 @@ static void __cpuinit cacheinfo_sysfs_populate(unsigned int cpu_id, struct cache
	}
}

void __cpuinit cacheinfo_cpu_online(unsigned int cpu_id)
void cacheinfo_cpu_online(unsigned int cpu_id)
{
	struct cache *cache;

+2 −2
Original line number Diff line number Diff line
@@ -1172,7 +1172,7 @@ int __init early_init_dt_scan_rtas(unsigned long node,
static arch_spinlock_t timebase_lock;
static u64 timebase = 0;

void __cpuinit rtas_give_timebase(void)
void rtas_give_timebase(void)
{
	unsigned long flags;

@@ -1189,7 +1189,7 @@ void __cpuinit rtas_give_timebase(void)
	local_irq_restore(flags);
}

void __cpuinit rtas_take_timebase(void)
void rtas_take_timebase(void)
{
	while (!timebase)
		barrier();
+2 −2
Original line number Diff line number Diff line
@@ -480,7 +480,7 @@ static void cpu_idle_thread_init(unsigned int cpu, struct task_struct *idle)
	secondary_ti = current_set[cpu] = ti;
}

int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle)
int __cpu_up(unsigned int cpu, struct task_struct *tidle)
{
	int rc, c;

@@ -610,7 +610,7 @@ static struct device_node *cpu_to_l2cache(int cpu)
}

/* Activate a secondary processor. */
__cpuinit void start_secondary(void *unused)
void start_secondary(void *unused)
{
	unsigned int cpu = smp_processor_id();
	struct device_node *l2_cache;
Loading