From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Pitre Subject: Re: [PATCH 2/2] ARM: use const and __initconst for smp_operations Date: Tue, 24 Nov 2015 13:19:20 -0500 (EST) Message-ID: References: <1447551593-22246-1-git-send-email-yamada.masahiro@socionext.com> <1447551593-22246-3-git-send-email-yamada.masahiro@socionext.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1447551593-22246-3-git-send-email-yamada.masahiro-uWyLwvC0a2jby3iVrkZq2A@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+glpam-linux-mediatek=m.gmane.org-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org To: Masahiro Yamada Cc: Mark Rutland , Andrew Lunn , Krzysztof Kozlowski , kernel-F5mvAk5X5gdBDgjK7y7TUQ@public.gmane.org, linux-sh-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Brian Norris , Linus Walleij , Will Deacon , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Matthias Brugger , Chen-Yu Tsai , Thierry Reding , Shawn Guo , Heiko Stuebner , Alexandre Courbot , linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Florian Fainelli , Russell King , =?ISO-8859-15?Q?Emilio_L=F3pez?= , Viresh Kumar , Stephen Warren , Magnus Damm , Michal Simek , Wei Xu List-Id: linux-tegra@vger.kernel.org On Sun, 15 Nov 2015, Masahiro Yamada wrote: > These smp_operations structures are not over-written, so add "const" > qualifier and replace __initdata with __initconst. > > Also, add "static" where it is possible. > > Signed-off-by: Masahiro Yamada > Acked-by: Krzysztof Kozlowski > Acked-by: Maxime Ripard > Acked-by: Moritz Fischer > --- Tested with LTO which is rather picky about those things. Acked-by: Nicolas Pitre > arch/arm/common/mcpm_platsmp.c | 2 +- > arch/arm/include/asm/psci.h | 2 +- > arch/arm/kernel/psci_smp.c | 2 +- > arch/arm/mach-alpine/platsmp.c | 2 +- > arch/arm/mach-axxia/platsmp.c | 2 +- > arch/arm/mach-bcm/bcm63xx_smp.c | 2 +- > arch/arm/mach-bcm/kona_smp.c | 2 +- > arch/arm/mach-bcm/platsmp-brcmstb.c | 2 +- > arch/arm/mach-berlin/platsmp.c | 2 +- > arch/arm/mach-exynos/common.h | 2 +- > arch/arm/mach-exynos/platsmp.c | 2 +- > arch/arm/mach-hisi/platmcpm.c | 2 +- > arch/arm/mach-hisi/platsmp.c | 6 +++--- > arch/arm/mach-imx/common.h | 4 ++-- > arch/arm/mach-imx/platsmp.c | 4 ++-- > arch/arm/mach-keystone/keystone.h | 2 +- > arch/arm/mach-keystone/platsmp.c | 2 +- > arch/arm/mach-mediatek/platsmp.c | 4 ++-- > arch/arm/mach-mvebu/armada-370-xp.h | 2 +- > arch/arm/mach-mvebu/platsmp-a9.c | 4 ++-- > arch/arm/mach-mvebu/platsmp.c | 2 +- > arch/arm/mach-omap2/common.h | 2 +- > arch/arm/mach-omap2/omap-smp.c | 2 +- > arch/arm/mach-prima2/common.h | 2 +- > arch/arm/mach-prima2/platsmp.c | 2 +- > arch/arm/mach-qcom/platsmp.c | 6 +++--- > arch/arm/mach-realview/core.h | 2 +- > arch/arm/mach-realview/platsmp.c | 2 +- > arch/arm/mach-rockchip/platsmp.c | 2 +- > arch/arm/mach-shmobile/r8a7779.h | 2 +- > arch/arm/mach-shmobile/r8a7790.h | 2 +- > arch/arm/mach-shmobile/r8a7791.h | 2 +- > arch/arm/mach-shmobile/setup-emev2.c | 2 +- > arch/arm/mach-shmobile/sh73a0.h | 2 +- > arch/arm/mach-shmobile/smp-emev2.c | 2 +- > arch/arm/mach-shmobile/smp-r8a7779.c | 2 +- > arch/arm/mach-shmobile/smp-r8a7790.c | 2 +- > arch/arm/mach-shmobile/smp-r8a7791.c | 2 +- > arch/arm/mach-shmobile/smp-sh73a0.c | 2 +- > arch/arm/mach-socfpga/platsmp.c | 4 ++-- > arch/arm/mach-spear/generic.h | 2 +- > arch/arm/mach-spear/platsmp.c | 2 +- > arch/arm/mach-sti/platsmp.c | 2 +- > arch/arm/mach-sti/smp.h | 2 +- > arch/arm/mach-sunxi/platsmp.c | 4 ++-- > arch/arm/mach-tegra/common.h | 2 +- > arch/arm/mach-tegra/platsmp.c | 2 +- > arch/arm/mach-uniphier/platsmp.c | 2 +- > arch/arm/mach-ux500/platsmp.c | 2 +- > arch/arm/mach-vexpress/core.h | 2 +- > arch/arm/mach-vexpress/platsmp.c | 2 +- > arch/arm/mach-zx/platsmp.c | 2 +- > arch/arm/mach-zynq/common.h | 2 +- > arch/arm/mach-zynq/platsmp.c | 2 +- > 54 files changed, 64 insertions(+), 64 deletions(-) > > diff --git a/arch/arm/common/mcpm_platsmp.c b/arch/arm/common/mcpm_platsmp.c > index 2b25b60..c773157 100644 > --- a/arch/arm/common/mcpm_platsmp.c > +++ b/arch/arm/common/mcpm_platsmp.c > @@ -83,7 +83,7 @@ static void mcpm_cpu_die(unsigned int cpu) > > #endif > > -static struct smp_operations __initdata mcpm_smp_ops = { > +static const struct smp_operations mcpm_smp_ops __initconst = { > .smp_boot_secondary = mcpm_boot_secondary, > .smp_secondary_init = mcpm_secondary_init, > #ifdef CONFIG_HOTPLUG_CPU > diff --git a/arch/arm/include/asm/psci.h b/arch/arm/include/asm/psci.h > index 68ee3ce..97735a8 100644 > --- a/arch/arm/include/asm/psci.h > +++ b/arch/arm/include/asm/psci.h > @@ -14,7 +14,7 @@ > #ifndef __ASM_ARM_PSCI_H > #define __ASM_ARM_PSCI_H > > -extern struct smp_operations psci_smp_ops; > +extern const struct smp_operations psci_smp_ops; > > #ifdef CONFIG_ARM_PSCI > bool psci_smp_available(void); > diff --git a/arch/arm/kernel/psci_smp.c b/arch/arm/kernel/psci_smp.c > index 9d479b2..cb3fcae 100644 > --- a/arch/arm/kernel/psci_smp.c > +++ b/arch/arm/kernel/psci_smp.c > @@ -120,7 +120,7 @@ bool __init psci_smp_available(void) > return (psci_ops.cpu_on != NULL); > } > > -struct smp_operations __initdata psci_smp_ops = { > +const struct smp_operations psci_smp_ops __initconst = { > .smp_boot_secondary = psci_boot_secondary, > #ifdef CONFIG_HOTPLUG_CPU > .cpu_disable = psci_cpu_disable, > diff --git a/arch/arm/mach-alpine/platsmp.c b/arch/arm/mach-alpine/platsmp.c > index f78429f..dd77ea2 100644 > --- a/arch/arm/mach-alpine/platsmp.c > +++ b/arch/arm/mach-alpine/platsmp.c > @@ -42,7 +42,7 @@ static void __init alpine_smp_prepare_cpus(unsigned int max_cpus) > alpine_cpu_pm_init(); > } > > -static struct smp_operations alpine_smp_ops __initdata = { > +static const struct smp_operations alpine_smp_ops __initconst = { > .smp_prepare_cpus = alpine_smp_prepare_cpus, > .smp_boot_secondary = alpine_boot_secondary, > }; > diff --git a/arch/arm/mach-axxia/platsmp.c b/arch/arm/mach-axxia/platsmp.c > index 959d4df..ffbd71d 100644 > --- a/arch/arm/mach-axxia/platsmp.c > +++ b/arch/arm/mach-axxia/platsmp.c > @@ -82,7 +82,7 @@ static void __init axxia_smp_prepare_cpus(unsigned int max_cpus) > } > } > > -static struct smp_operations axxia_smp_ops __initdata = { > +static const struct smp_operations axxia_smp_ops __initconst = { > .smp_prepare_cpus = axxia_smp_prepare_cpus, > .smp_boot_secondary = axxia_boot_secondary, > }; > diff --git a/arch/arm/mach-bcm/bcm63xx_smp.c b/arch/arm/mach-bcm/bcm63xx_smp.c > index 19be904..9b6727e 100644 > --- a/arch/arm/mach-bcm/bcm63xx_smp.c > +++ b/arch/arm/mach-bcm/bcm63xx_smp.c > @@ -161,7 +161,7 @@ static void __init bcm63138_smp_prepare_cpus(unsigned int max_cpus) > } > } > > -struct smp_operations bcm63138_smp_ops __initdata = { > +static const struct smp_operations bcm63138_smp_ops __initconst = { > .smp_prepare_cpus = bcm63138_smp_prepare_cpus, > .smp_boot_secondary = bcm63138_smp_boot_secondary, > }; > diff --git a/arch/arm/mach-bcm/kona_smp.c b/arch/arm/mach-bcm/kona_smp.c > index 66a0465..da8328b 100644 > --- a/arch/arm/mach-bcm/kona_smp.c > +++ b/arch/arm/mach-bcm/kona_smp.c > @@ -194,7 +194,7 @@ static int bcm_boot_secondary(unsigned int cpu, struct task_struct *idle) > return -ENOSYS; > } > > -static struct smp_operations bcm_smp_ops __initdata = { > +static const struct smp_operations bcm_smp_ops __initconst = { > .smp_prepare_cpus = bcm_smp_prepare_cpus, > .smp_boot_secondary = bcm_boot_secondary, > }; > diff --git a/arch/arm/mach-bcm/platsmp-brcmstb.c b/arch/arm/mach-bcm/platsmp-brcmstb.c > index 44d6bddf..40dc844 100644 > --- a/arch/arm/mach-bcm/platsmp-brcmstb.c > +++ b/arch/arm/mach-bcm/platsmp-brcmstb.c > @@ -356,7 +356,7 @@ static int brcmstb_boot_secondary(unsigned int cpu, struct task_struct *idle) > return 0; > } > > -static struct smp_operations brcmstb_smp_ops __initdata = { > +static const struct smp_operations brcmstb_smp_ops __initconst = { > .smp_prepare_cpus = brcmstb_cpu_ctrl_setup, > .smp_boot_secondary = brcmstb_boot_secondary, > #ifdef CONFIG_HOTPLUG_CPU > diff --git a/arch/arm/mach-berlin/platsmp.c b/arch/arm/mach-berlin/platsmp.c > index 405cd37..93f9068 100644 > --- a/arch/arm/mach-berlin/platsmp.c > +++ b/arch/arm/mach-berlin/platsmp.c > @@ -119,7 +119,7 @@ static int berlin_cpu_kill(unsigned int cpu) > } > #endif > > -static struct smp_operations berlin_smp_ops __initdata = { > +static const struct smp_operations berlin_smp_ops __initconst = { > .smp_prepare_cpus = berlin_smp_prepare_cpus, > .smp_boot_secondary = berlin_boot_secondary, > #ifdef CONFIG_HOTPLUG_CPU > diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h > index 1534925..e349a03 100644 > --- a/arch/arm/mach-exynos/common.h > +++ b/arch/arm/mach-exynos/common.h > @@ -149,7 +149,7 @@ static inline void exynos_pm_init(void) {} > extern void exynos_cpu_resume(void); > extern void exynos_cpu_resume_ns(void); > > -extern struct smp_operations exynos_smp_ops; > +extern const struct smp_operations exynos_smp_ops; > > extern void exynos_cpu_power_down(int cpu); > extern void exynos_cpu_power_up(int cpu); > diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c > index 98a2c0c..5bd9559 100644 > --- a/arch/arm/mach-exynos/platsmp.c > +++ b/arch/arm/mach-exynos/platsmp.c > @@ -479,7 +479,7 @@ static void exynos_cpu_die(unsigned int cpu) > } > #endif /* CONFIG_HOTPLUG_CPU */ > > -struct smp_operations exynos_smp_ops __initdata = { > +const struct smp_operations exynos_smp_ops __initconst = { > .smp_init_cpus = exynos_smp_init_cpus, > .smp_prepare_cpus = exynos_smp_prepare_cpus, > .smp_secondary_init = exynos_secondary_init, > diff --git a/arch/arm/mach-hisi/platmcpm.c b/arch/arm/mach-hisi/platmcpm.c > index b5f8f5f..4b653a8 100644 > --- a/arch/arm/mach-hisi/platmcpm.c > +++ b/arch/arm/mach-hisi/platmcpm.c > @@ -239,7 +239,7 @@ err: > } > #endif > > -static struct smp_operations __initdata hip04_smp_ops = { > +static const struct smp_operations hip04_smp_ops __initconst = { > .smp_boot_secondary = hip04_boot_secondary, > #ifdef CONFIG_HOTPLUG_CPU > .cpu_die = hip04_cpu_die, > diff --git a/arch/arm/mach-hisi/platsmp.c b/arch/arm/mach-hisi/platsmp.c > index 3c5237d..47ed32c 100644 > --- a/arch/arm/mach-hisi/platsmp.c > +++ b/arch/arm/mach-hisi/platsmp.c > @@ -89,7 +89,7 @@ static int hi3xxx_boot_secondary(unsigned int cpu, struct task_struct *idle) > return 0; > } > > -static struct smp_operations hi3xxx_smp_ops __initdata = { > +static const struct smp_operations hi3xxx_smp_ops __initconst = { > .smp_prepare_cpus = hi3xxx_smp_prepare_cpus, > .smp_boot_secondary = hi3xxx_boot_secondary, > #ifdef CONFIG_HOTPLUG_CPU > @@ -126,7 +126,7 @@ static int hix5hd2_boot_secondary(unsigned int cpu, struct task_struct *idle) > } > > > -static struct smp_operations hix5hd2_smp_ops __initdata = { > +static const struct smp_operations hix5hd2_smp_ops __initconst = { > .smp_prepare_cpus = hisi_common_smp_prepare_cpus, > .smp_boot_secondary = hix5hd2_boot_secondary, > #ifdef CONFIG_HOTPLUG_CPU > @@ -176,7 +176,7 @@ static int hip01_boot_secondary(unsigned int cpu, struct task_struct *idle) > return 0; > } > > -static struct smp_operations hip01_smp_ops __initdata = { > +static const struct smp_operations hip01_smp_ops __initconst = { > .smp_prepare_cpus = hisi_common_smp_prepare_cpus, > .smp_boot_secondary = hip01_boot_secondary, > }; > diff --git a/arch/arm/mach-imx/common.h b/arch/arm/mach-imx/common.h > index e2d5383..32b83f0 100644 > --- a/arch/arm/mach-imx/common.h > +++ b/arch/arm/mach-imx/common.h > @@ -153,7 +153,7 @@ void imx_init_l2cache(void); > static inline void imx_init_l2cache(void) {} > #endif > > -extern struct smp_operations imx_smp_ops; > -extern struct smp_operations ls1021a_smp_ops; > +extern const struct smp_operations imx_smp_ops; > +extern const struct smp_operations ls1021a_smp_ops; > > #endif > diff --git a/arch/arm/mach-imx/platsmp.c b/arch/arm/mach-imx/platsmp.c > index 7f27001..711dbbd 100644 > --- a/arch/arm/mach-imx/platsmp.c > +++ b/arch/arm/mach-imx/platsmp.c > @@ -88,7 +88,7 @@ static void __init imx_smp_prepare_cpus(unsigned int max_cpus) > sync_cache_w(&g_diag_reg); > } > > -struct smp_operations imx_smp_ops __initdata = { > +const struct smp_operations imx_smp_ops __initconst = { > .smp_init_cpus = imx_smp_init_cpus, > .smp_prepare_cpus = imx_smp_prepare_cpus, > .smp_boot_secondary = imx_boot_secondary, > @@ -123,7 +123,7 @@ static void __init ls1021a_smp_prepare_cpus(unsigned int max_cpus) > iounmap(dcfg_base); > } > > -struct smp_operations ls1021a_smp_ops __initdata = { > +const struct smp_operations ls1021a_smp_ops __initconst = { > .smp_prepare_cpus = ls1021a_smp_prepare_cpus, > .smp_boot_secondary = ls1021a_boot_secondary, > }; > diff --git a/arch/arm/mach-keystone/keystone.h b/arch/arm/mach-keystone/keystone.h > index cd04a1c..33eaa03 100644 > --- a/arch/arm/mach-keystone/keystone.h > +++ b/arch/arm/mach-keystone/keystone.h > @@ -15,7 +15,7 @@ > > #ifndef __ASSEMBLER__ > > -extern struct smp_operations keystone_smp_ops; > +extern const struct smp_operations keystone_smp_ops; > extern void secondary_startup(void); > extern u32 keystone_cpu_smc(u32 command, u32 cpu, u32 addr); > extern int keystone_pm_runtime_init(void); > diff --git a/arch/arm/mach-keystone/platsmp.c b/arch/arm/mach-keystone/platsmp.c > index 4bbb184..5665276 100644 > --- a/arch/arm/mach-keystone/platsmp.c > +++ b/arch/arm/mach-keystone/platsmp.c > @@ -39,6 +39,6 @@ static int keystone_smp_boot_secondary(unsigned int cpu, > return error; > } > > -struct smp_operations keystone_smp_ops __initdata = { > +const struct smp_operations keystone_smp_ops __initconst = { > .smp_boot_secondary = keystone_smp_boot_secondary, > }; > diff --git a/arch/arm/mach-mediatek/platsmp.c b/arch/arm/mach-mediatek/platsmp.c > index 8141f3f..a1b07ee 100644 > --- a/arch/arm/mach-mediatek/platsmp.c > +++ b/arch/arm/mach-mediatek/platsmp.c > @@ -128,13 +128,13 @@ static void __init mtk_smp_prepare_cpus(unsigned int max_cpus) > __mtk_smp_prepare_cpus(max_cpus, 0); > } > > -static struct smp_operations mt81xx_tz_smp_ops __initdata = { > +static const struct smp_operations mt81xx_tz_smp_ops __initconst = { > .smp_prepare_cpus = mtk_tz_smp_prepare_cpus, > .smp_boot_secondary = mtk_boot_secondary, > }; > CPU_METHOD_OF_DECLARE(mt81xx_tz_smp, "mediatek,mt81xx-tz-smp", &mt81xx_tz_smp_ops); > > -static struct smp_operations mt6589_smp_ops __initdata = { > +static const struct smp_operations mt6589_smp_ops __initconst = { > .smp_prepare_cpus = mtk_smp_prepare_cpus, > .smp_boot_secondary = mtk_boot_secondary, > }; > diff --git a/arch/arm/mach-mvebu/armada-370-xp.h b/arch/arm/mach-mvebu/armada-370-xp.h > index c55bbf8..09413b6 100644 > --- a/arch/arm/mach-mvebu/armada-370-xp.h > +++ b/arch/arm/mach-mvebu/armada-370-xp.h > @@ -17,7 +17,7 @@ > > #ifdef CONFIG_SMP > void armada_xp_secondary_startup(void); > -extern struct smp_operations armada_xp_smp_ops; > +extern const struct smp_operations armada_xp_smp_ops; > #endif > > #endif /* __MACH_ARMADA_370_XP_H */ > diff --git a/arch/arm/mach-mvebu/platsmp-a9.c b/arch/arm/mach-mvebu/platsmp-a9.c > index 3d50004..d715dec 100644 > --- a/arch/arm/mach-mvebu/platsmp-a9.c > +++ b/arch/arm/mach-mvebu/platsmp-a9.c > @@ -93,11 +93,11 @@ static int armada_38x_cpu_kill(unsigned int cpu) > } > #endif > > -static struct smp_operations mvebu_cortex_a9_smp_ops __initdata = { > +static const struct smp_operations mvebu_cortex_a9_smp_ops __initconst = { > .smp_boot_secondary = mvebu_cortex_a9_boot_secondary, > }; > > -static struct smp_operations armada_38x_smp_ops __initdata = { > +static const struct smp_operations armada_38x_smp_ops __initconst = { > .smp_boot_secondary = mvebu_cortex_a9_boot_secondary, > .smp_secondary_init = armada_38x_secondary_init, > #ifdef CONFIG_HOTPLUG_CPU > diff --git a/arch/arm/mach-mvebu/platsmp.c b/arch/arm/mach-mvebu/platsmp.c > index 58cc8c1..f9597b7 100644 > --- a/arch/arm/mach-mvebu/platsmp.c > +++ b/arch/arm/mach-mvebu/platsmp.c > @@ -170,7 +170,7 @@ static int armada_xp_cpu_kill(unsigned int cpu) > } > #endif > > -struct smp_operations armada_xp_smp_ops __initdata = { > +const struct smp_operations armada_xp_smp_ops __initconst = { > .smp_init_cpus = armada_xp_smp_init_cpus, > .smp_prepare_cpus = armada_xp_smp_prepare_cpus, > .smp_boot_secondary = armada_xp_boot_secondary, > diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h > index 0cba957..f7666b9 100644 > --- a/arch/arm/mach-omap2/common.h > +++ b/arch/arm/mach-omap2/common.h > @@ -270,7 +270,7 @@ extern u32 omap_read_auxcoreboot0(void); > > extern void omap4_cpu_die(unsigned int cpu); > > -extern struct smp_operations omap4_smp_ops; > +extern const struct smp_operations omap4_smp_ops; > > extern void omap5_secondary_startup(void); > extern void omap5_secondary_hyp_startup(void); > diff --git a/arch/arm/mach-omap2/omap-smp.c b/arch/arm/mach-omap2/omap-smp.c > index 5305ec7..ddcd1d2 100644 > --- a/arch/arm/mach-omap2/omap-smp.c > +++ b/arch/arm/mach-omap2/omap-smp.c > @@ -241,7 +241,7 @@ static void __init omap4_smp_prepare_cpus(unsigned int max_cpus) > > } > > -struct smp_operations omap4_smp_ops __initdata = { > +const struct smp_operations omap4_smp_ops __initconst = { > .smp_init_cpus = omap4_smp_init_cpus, > .smp_prepare_cpus = omap4_smp_prepare_cpus, > .smp_secondary_init = omap4_secondary_init, > diff --git a/arch/arm/mach-prima2/common.h b/arch/arm/mach-prima2/common.h > index 3916a66..6d77b62 100644 > --- a/arch/arm/mach-prima2/common.h > +++ b/arch/arm/mach-prima2/common.h > @@ -15,7 +15,7 @@ > #include > #include > > -extern struct smp_operations sirfsoc_smp_ops; > +extern const struct smp_operations sirfsoc_smp_ops; > extern void sirfsoc_secondary_startup(void); > extern void sirfsoc_cpu_die(unsigned int cpu); > > diff --git a/arch/arm/mach-prima2/platsmp.c b/arch/arm/mach-prima2/platsmp.c > index e46c910..0875b99 100644 > --- a/arch/arm/mach-prima2/platsmp.c > +++ b/arch/arm/mach-prima2/platsmp.c > @@ -112,7 +112,7 @@ static int sirfsoc_boot_secondary(unsigned int cpu, struct task_struct *idle) > return pen_release != -1 ? -ENOSYS : 0; > } > > -struct smp_operations sirfsoc_smp_ops __initdata = { > +const struct smp_operations sirfsoc_smp_ops __initconst = { > .smp_secondary_init = sirfsoc_secondary_init, > .smp_boot_secondary = sirfsoc_boot_secondary, > #ifdef CONFIG_HOTPLUG_CPU > diff --git a/arch/arm/mach-qcom/platsmp.c b/arch/arm/mach-qcom/platsmp.c > index 9b00123..5494c9e 100644 > --- a/arch/arm/mach-qcom/platsmp.c > +++ b/arch/arm/mach-qcom/platsmp.c > @@ -332,7 +332,7 @@ static void __init qcom_smp_prepare_cpus(unsigned int max_cpus) > } > } > > -static struct smp_operations smp_msm8660_ops __initdata = { > +static const struct smp_operations smp_msm8660_ops __initconst = { > .smp_prepare_cpus = qcom_smp_prepare_cpus, > .smp_secondary_init = qcom_secondary_init, > .smp_boot_secondary = msm8660_boot_secondary, > @@ -342,7 +342,7 @@ static struct smp_operations smp_msm8660_ops __initdata = { > }; > CPU_METHOD_OF_DECLARE(qcom_smp, "qcom,gcc-msm8660", &smp_msm8660_ops); > > -static struct smp_operations qcom_smp_kpssv1_ops __initdata = { > +static const struct smp_operations qcom_smp_kpssv1_ops __initconst = { > .smp_prepare_cpus = qcom_smp_prepare_cpus, > .smp_secondary_init = qcom_secondary_init, > .smp_boot_secondary = kpssv1_boot_secondary, > @@ -352,7 +352,7 @@ static struct smp_operations qcom_smp_kpssv1_ops __initdata = { > }; > CPU_METHOD_OF_DECLARE(qcom_smp_kpssv1, "qcom,kpss-acc-v1", &qcom_smp_kpssv1_ops); > > -static struct smp_operations qcom_smp_kpssv2_ops __initdata = { > +static const struct smp_operations qcom_smp_kpssv2_ops __initconst = { > .smp_prepare_cpus = qcom_smp_prepare_cpus, > .smp_secondary_init = qcom_secondary_init, > .smp_boot_secondary = kpssv2_boot_secondary, > diff --git a/arch/arm/mach-realview/core.h b/arch/arm/mach-realview/core.h > index 868ece2..670ee0e 100644 > --- a/arch/arm/mach-realview/core.h > +++ b/arch/arm/mach-realview/core.h > @@ -54,7 +54,7 @@ extern int realview_usb_register(struct resource *res); > extern void realview_init_early(void); > extern void realview_fixup(struct tag *tags, char **from); > > -extern struct smp_operations realview_smp_ops; > +extern const struct smp_operations realview_smp_ops; > extern void realview_cpu_die(unsigned int cpu); > > #endif > diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c > index 98e3052..dc29029 100644 > --- a/arch/arm/mach-realview/platsmp.c > +++ b/arch/arm/mach-realview/platsmp.c > @@ -75,7 +75,7 @@ static void __init realview_smp_prepare_cpus(unsigned int max_cpus) > __io_address(REALVIEW_SYS_FLAGSSET)); > } > > -struct smp_operations realview_smp_ops __initdata = { > +const struct smp_operations realview_smp_ops __initconst = { > .smp_init_cpus = realview_smp_init_cpus, > .smp_prepare_cpus = realview_smp_prepare_cpus, > .smp_secondary_init = versatile_secondary_init, > diff --git a/arch/arm/mach-rockchip/platsmp.c b/arch/arm/mach-rockchip/platsmp.c > index 3e7a4b7..938888f 100644 > --- a/arch/arm/mach-rockchip/platsmp.c > +++ b/arch/arm/mach-rockchip/platsmp.c > @@ -340,7 +340,7 @@ static void rockchip_cpu_die(unsigned int cpu) > } > #endif > > -static struct smp_operations rockchip_smp_ops __initdata = { > +static const struct smp_operations rockchip_smp_ops __initconst = { > .smp_prepare_cpus = rockchip_smp_prepare_cpus, > .smp_boot_secondary = rockchip_boot_secondary, > #ifdef CONFIG_HOTPLUG_CPU > diff --git a/arch/arm/mach-shmobile/r8a7779.h b/arch/arm/mach-shmobile/r8a7779.h > index e1aaa2e..2a5f773 100644 > --- a/arch/arm/mach-shmobile/r8a7779.h > +++ b/arch/arm/mach-shmobile/r8a7779.h > @@ -3,6 +3,6 @@ > > extern void r8a7779_pm_init(void); > > -extern struct smp_operations r8a7779_smp_ops; > +extern const struct smp_operations r8a7779_smp_ops; > > #endif /* __ASM_R8A7779_H__ */ > diff --git a/arch/arm/mach-shmobile/r8a7790.h b/arch/arm/mach-shmobile/r8a7790.h > index 1a46d02..136f345 100644 > --- a/arch/arm/mach-shmobile/r8a7790.h > +++ b/arch/arm/mach-shmobile/r8a7790.h > @@ -1,6 +1,6 @@ > #ifndef __ASM_R8A7790_H__ > #define __ASM_R8A7790_H__ > > -extern struct smp_operations r8a7790_smp_ops; > +extern const struct smp_operations r8a7790_smp_ops; > > #endif /* __ASM_R8A7790_H__ */ > diff --git a/arch/arm/mach-shmobile/r8a7791.h b/arch/arm/mach-shmobile/r8a7791.h > index 7ca0b7d..cf7a840 100644 > --- a/arch/arm/mach-shmobile/r8a7791.h > +++ b/arch/arm/mach-shmobile/r8a7791.h > @@ -1,6 +1,6 @@ > #ifndef __ASM_R8A7791_H__ > #define __ASM_R8A7791_H__ > > -extern struct smp_operations r8a7791_smp_ops; > +extern const struct smp_operations r8a7791_smp_ops; > > #endif /* __ASM_R8A7791_H__ */ > diff --git a/arch/arm/mach-shmobile/setup-emev2.c b/arch/arm/mach-shmobile/setup-emev2.c > index 37f7b15..10b7cb5 100644 > --- a/arch/arm/mach-shmobile/setup-emev2.c > +++ b/arch/arm/mach-shmobile/setup-emev2.c > @@ -42,7 +42,7 @@ static const char *const emev2_boards_compat_dt[] __initconst = { > NULL, > }; > > -extern struct smp_operations emev2_smp_ops; > +extern const struct smp_operations emev2_smp_ops; > > DT_MACHINE_START(EMEV2_DT, "Generic Emma Mobile EV2 (Flattened Device Tree)") > .smp = smp_ops(emev2_smp_ops), > diff --git a/arch/arm/mach-shmobile/sh73a0.h b/arch/arm/mach-shmobile/sh73a0.h > index 3964680..50ef24f 100644 > --- a/arch/arm/mach-shmobile/sh73a0.h > +++ b/arch/arm/mach-shmobile/sh73a0.h > @@ -1,6 +1,6 @@ > #ifndef __ASM_SH73A0_H__ > #define __ASM_SH73A0_H__ > > -extern struct smp_operations sh73a0_smp_ops; > +extern const struct smp_operations sh73a0_smp_ops; > > #endif /* __ASM_SH73A0_H__ */ > diff --git a/arch/arm/mach-shmobile/smp-emev2.c b/arch/arm/mach-shmobile/smp-emev2.c > index baff3b5..adbac69 100644 > --- a/arch/arm/mach-shmobile/smp-emev2.c > +++ b/arch/arm/mach-shmobile/smp-emev2.c > @@ -49,7 +49,7 @@ static void __init emev2_smp_prepare_cpus(unsigned int max_cpus) > shmobile_smp_scu_prepare_cpus(max_cpus); > } > > -struct smp_operations emev2_smp_ops __initdata = { > +const struct smp_operations emev2_smp_ops __initconst = { > .smp_prepare_cpus = emev2_smp_prepare_cpus, > .smp_boot_secondary = emev2_boot_secondary, > }; > diff --git a/arch/arm/mach-shmobile/smp-r8a7779.c b/arch/arm/mach-shmobile/smp-r8a7779.c > index 353562b8..b854fe2 100644 > --- a/arch/arm/mach-shmobile/smp-r8a7779.c > +++ b/arch/arm/mach-shmobile/smp-r8a7779.c > @@ -117,7 +117,7 @@ static int r8a7779_cpu_kill(unsigned int cpu) > } > #endif /* CONFIG_HOTPLUG_CPU */ > > -struct smp_operations r8a7779_smp_ops __initdata = { > +const struct smp_operations r8a7779_smp_ops __initconst = { > .smp_prepare_cpus = r8a7779_smp_prepare_cpus, > .smp_boot_secondary = r8a7779_boot_secondary, > #ifdef CONFIG_HOTPLUG_CPU > diff --git a/arch/arm/mach-shmobile/smp-r8a7790.c b/arch/arm/mach-shmobile/smp-r8a7790.c > index 4b33d43..f6426c6 100644 > --- a/arch/arm/mach-shmobile/smp-r8a7790.c > +++ b/arch/arm/mach-shmobile/smp-r8a7790.c > @@ -60,7 +60,7 @@ static void __init r8a7790_smp_prepare_cpus(unsigned int max_cpus) > rcar_sysc_power_up(&r8a7790_ca7_scu); > } > > -struct smp_operations r8a7790_smp_ops __initdata = { > +const struct smp_operations r8a7790_smp_ops __initconst = { > .smp_prepare_cpus = r8a7790_smp_prepare_cpus, > .smp_boot_secondary = shmobile_smp_apmu_boot_secondary, > #ifdef CONFIG_HOTPLUG_CPU > diff --git a/arch/arm/mach-shmobile/smp-r8a7791.c b/arch/arm/mach-shmobile/smp-r8a7791.c > index b2508c0..2d6417a 100644 > --- a/arch/arm/mach-shmobile/smp-r8a7791.c > +++ b/arch/arm/mach-shmobile/smp-r8a7791.c > @@ -54,7 +54,7 @@ static int r8a7791_smp_boot_secondary(unsigned int cpu, > return shmobile_smp_apmu_boot_secondary(cpu, idle); > } > > -struct smp_operations r8a7791_smp_ops __initdata = { > +const struct smp_operations r8a7791_smp_ops __initconst = { > .smp_prepare_cpus = r8a7791_smp_prepare_cpus, > .smp_boot_secondary = r8a7791_smp_boot_secondary, > #ifdef CONFIG_HOTPLUG_CPU > diff --git a/arch/arm/mach-shmobile/smp-sh73a0.c b/arch/arm/mach-shmobile/smp-sh73a0.c > index bc2824a..ee1a4b7 100644 > --- a/arch/arm/mach-shmobile/smp-sh73a0.c > +++ b/arch/arm/mach-shmobile/smp-sh73a0.c > @@ -56,7 +56,7 @@ static void __init sh73a0_smp_prepare_cpus(unsigned int max_cpus) > shmobile_smp_scu_prepare_cpus(max_cpus); > } > > -struct smp_operations sh73a0_smp_ops __initdata = { > +const struct smp_operations sh73a0_smp_ops __initconst = { > .smp_prepare_cpus = sh73a0_smp_prepare_cpus, > .smp_boot_secondary = sh73a0_boot_secondary, > #ifdef CONFIG_HOTPLUG_CPU > diff --git a/arch/arm/mach-socfpga/platsmp.c b/arch/arm/mach-socfpga/platsmp.c > index 15c8ce8..cbb0a54 100644 > --- a/arch/arm/mach-socfpga/platsmp.c > +++ b/arch/arm/mach-socfpga/platsmp.c > @@ -117,7 +117,7 @@ static int socfpga_cpu_kill(unsigned int cpu) > return 1; > } > > -static struct smp_operations socfpga_smp_ops __initdata = { > +static const struct smp_operations socfpga_smp_ops __initconst = { > .smp_prepare_cpus = socfpga_smp_prepare_cpus, > .smp_boot_secondary = socfpga_boot_secondary, > #ifdef CONFIG_HOTPLUG_CPU > @@ -126,7 +126,7 @@ static struct smp_operations socfpga_smp_ops __initdata = { > #endif > }; > > -static struct smp_operations socfpga_a10_smp_ops __initdata = { > +static const struct smp_operations socfpga_a10_smp_ops __initconst = { > .smp_prepare_cpus = socfpga_smp_prepare_cpus, > .smp_boot_secondary = socfpga_a10_boot_secondary, > #ifdef CONFIG_HOTPLUG_CPU > diff --git a/arch/arm/mach-spear/generic.h b/arch/arm/mach-spear/generic.h > index 0664091..909b97c0 100644 > --- a/arch/arm/mach-spear/generic.h > +++ b/arch/arm/mach-spear/generic.h > @@ -39,7 +39,7 @@ void spear_restart(enum reboot_mode, const char *); > void spear13xx_secondary_startup(void); > void spear13xx_cpu_die(unsigned int cpu); > > -extern struct smp_operations spear13xx_smp_ops; > +extern const struct smp_operations spear13xx_smp_ops; > > #ifdef CONFIG_MACH_SPEAR1310 > void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base); > diff --git a/arch/arm/mach-spear/platsmp.c b/arch/arm/mach-spear/platsmp.c > index fd42977..8d1e2d5 100644 > --- a/arch/arm/mach-spear/platsmp.c > +++ b/arch/arm/mach-spear/platsmp.c > @@ -120,7 +120,7 @@ static void __init spear13xx_smp_prepare_cpus(unsigned int max_cpus) > __raw_writel(virt_to_phys(spear13xx_secondary_startup), SYS_LOCATION); > } > > -struct smp_operations spear13xx_smp_ops __initdata = { > +const struct smp_operations spear13xx_smp_ops __initconst = { > .smp_init_cpus = spear13xx_smp_init_cpus, > .smp_prepare_cpus = spear13xx_smp_prepare_cpus, > .smp_secondary_init = spear13xx_secondary_init, > diff --git a/arch/arm/mach-sti/platsmp.c b/arch/arm/mach-sti/platsmp.c > index c4ad6ea..ea5a227 100644 > --- a/arch/arm/mach-sti/platsmp.c > +++ b/arch/arm/mach-sti/platsmp.c > @@ -156,7 +156,7 @@ static void __init sti_smp_prepare_cpus(unsigned int max_cpus) > } > } > > -struct smp_operations __initdata sti_smp_ops = { > +const struct smp_operations sti_smp_ops __initconst = { > .smp_prepare_cpus = sti_smp_prepare_cpus, > .smp_secondary_init = sti_secondary_init, > .smp_boot_secondary = sti_boot_secondary, > diff --git a/arch/arm/mach-sti/smp.h b/arch/arm/mach-sti/smp.h > index ae22707..d8a2f87 100644 > --- a/arch/arm/mach-sti/smp.h > +++ b/arch/arm/mach-sti/smp.h > @@ -12,7 +12,7 @@ > #ifndef __MACH_STI_SMP_H > #define __MACH_STI_SMP_H > > -extern struct smp_operations sti_smp_ops; > +extern const struct smp_operations sti_smp_ops; > > void sti_secondary_startup(void); > > diff --git a/arch/arm/mach-sunxi/platsmp.c b/arch/arm/mach-sunxi/platsmp.c > index e8483ec..6642267 100644 > --- a/arch/arm/mach-sunxi/platsmp.c > +++ b/arch/arm/mach-sunxi/platsmp.c > @@ -116,7 +116,7 @@ static int sun6i_smp_boot_secondary(unsigned int cpu, > return 0; > } > > -static struct smp_operations sun6i_smp_ops __initdata = { > +static const struct smp_operations sun6i_smp_ops __initconst = { > .smp_prepare_cpus = sun6i_smp_prepare_cpus, > .smp_boot_secondary = sun6i_smp_boot_secondary, > }; > @@ -185,7 +185,7 @@ static int sun8i_smp_boot_secondary(unsigned int cpu, > return 0; > } > > -struct smp_operations sun8i_smp_ops __initdata = { > +static const struct smp_operations sun8i_smp_ops __initconst = { > .smp_prepare_cpus = sun8i_smp_prepare_cpus, > .smp_boot_secondary = sun8i_smp_boot_secondary, > }; > diff --git a/arch/arm/mach-tegra/common.h b/arch/arm/mach-tegra/common.h > index 5900cc4..1f6fb80 100644 > --- a/arch/arm/mach-tegra/common.h > +++ b/arch/arm/mach-tegra/common.h > @@ -1,4 +1,4 @@ > -extern struct smp_operations tegra_smp_ops; > +extern const struct smp_operations tegra_smp_ops; > > extern int tegra_cpu_kill(unsigned int cpu); > extern void tegra_cpu_die(unsigned int cpu); > diff --git a/arch/arm/mach-tegra/platsmp.c b/arch/arm/mach-tegra/platsmp.c > index b450866..f3f61db 100644 > --- a/arch/arm/mach-tegra/platsmp.c > +++ b/arch/arm/mach-tegra/platsmp.c > @@ -192,7 +192,7 @@ static void __init tegra_smp_prepare_cpus(unsigned int max_cpus) > scu_enable(IO_ADDRESS(scu_a9_get_base())); > } > > -struct smp_operations tegra_smp_ops __initdata = { > +const struct smp_operations tegra_smp_ops __initconst = { > .smp_prepare_cpus = tegra_smp_prepare_cpus, > .smp_secondary_init = tegra_secondary_init, > .smp_boot_secondary = tegra_boot_secondary, > diff --git a/arch/arm/mach-uniphier/platsmp.c b/arch/arm/mach-uniphier/platsmp.c > index f057766..e1cfc1d 100644 > --- a/arch/arm/mach-uniphier/platsmp.c > +++ b/arch/arm/mach-uniphier/platsmp.c > @@ -201,7 +201,7 @@ static int __init uniphier_smp_boot_secondary(unsigned int cpu, > return 0; > } > > -static struct smp_operations uniphier_smp_ops __initdata = { > +static const struct smp_operations uniphier_smp_ops __initconst = { > .smp_prepare_cpus = uniphier_smp_prepare_cpus, > .smp_boot_secondary = uniphier_smp_boot_secondary, > }; > diff --git a/arch/arm/mach-ux500/platsmp.c b/arch/arm/mach-ux500/platsmp.c > index 70766b96..88b8ab4 100644 > --- a/arch/arm/mach-ux500/platsmp.c > +++ b/arch/arm/mach-ux500/platsmp.c > @@ -98,7 +98,7 @@ static int ux500_boot_secondary(unsigned int cpu, struct task_struct *idle) > return 0; > } > > -struct smp_operations ux500_smp_ops __initdata = { > +static const struct smp_operations ux500_smp_ops __initconst = { > .smp_prepare_cpus = ux500_smp_prepare_cpus, > .smp_boot_secondary = ux500_boot_secondary, > #ifdef CONFIG_HOTPLUG_CPU > diff --git a/arch/arm/mach-vexpress/core.h b/arch/arm/mach-vexpress/core.h > index 2a11d3a..a162ab4 100644 > --- a/arch/arm/mach-vexpress/core.h > +++ b/arch/arm/mach-vexpress/core.h > @@ -1,5 +1,5 @@ > bool vexpress_smp_init_ops(void); > > -extern struct smp_operations vexpress_smp_dt_ops; > +extern const struct smp_operations vexpress_smp_dt_ops; > > extern void vexpress_cpu_die(unsigned int cpu); > diff --git a/arch/arm/mach-vexpress/platsmp.c b/arch/arm/mach-vexpress/platsmp.c > index 83188cf..8b8d072 100644 > --- a/arch/arm/mach-vexpress/platsmp.c > +++ b/arch/arm/mach-vexpress/platsmp.c > @@ -64,7 +64,7 @@ static void __init vexpress_smp_dt_prepare_cpus(unsigned int max_cpus) > vexpress_flags_set(virt_to_phys(versatile_secondary_startup)); > } > > -struct smp_operations __initdata vexpress_smp_dt_ops = { > +const struct smp_operations vexpress_smp_dt_ops __initconst = { > .smp_prepare_cpus = vexpress_smp_dt_prepare_cpus, > .smp_secondary_init = versatile_secondary_init, > .smp_boot_secondary = versatile_boot_secondary, > diff --git a/arch/arm/mach-zx/platsmp.c b/arch/arm/mach-zx/platsmp.c > index a369398..0297f92 100644 > --- a/arch/arm/mach-zx/platsmp.c > +++ b/arch/arm/mach-zx/platsmp.c > @@ -176,7 +176,7 @@ static void zx_secondary_init(unsigned int cpu) > scu_power_mode(scu_base, SCU_PM_NORMAL); > } > > -struct smp_operations zx_smp_ops __initdata = { > +static const struct smp_operations zx_smp_ops __initconst = { > .smp_prepare_cpus = zx_smp_prepare_cpus, > .smp_secondary_init = zx_secondary_init, > .smp_boot_secondary = zx_boot_secondary, > diff --git a/arch/arm/mach-zynq/common.h b/arch/arm/mach-zynq/common.h > index 79cda2e..e771933 100644 > --- a/arch/arm/mach-zynq/common.h > +++ b/arch/arm/mach-zynq/common.h > @@ -30,7 +30,7 @@ extern char zynq_secondary_trampoline; > extern char zynq_secondary_trampoline_jump; > extern char zynq_secondary_trampoline_end; > extern int zynq_cpun_start(u32 address, int cpu); > -extern struct smp_operations zynq_smp_ops __initdata; > +extern const struct smp_operations zynq_smp_ops; > #endif > > extern void __iomem *zynq_scu_base; > diff --git a/arch/arm/mach-zynq/platsmp.c b/arch/arm/mach-zynq/platsmp.c > index f66816c..7cd9865 100644 > --- a/arch/arm/mach-zynq/platsmp.c > +++ b/arch/arm/mach-zynq/platsmp.c > @@ -157,7 +157,7 @@ static void zynq_cpu_die(unsigned int cpu) > } > #endif > > -struct smp_operations zynq_smp_ops __initdata = { > +const struct smp_operations zynq_smp_ops __initconst = { > .smp_init_cpus = zynq_smp_init_cpus, > .smp_prepare_cpus = zynq_smp_prepare_cpus, > .smp_boot_secondary = zynq_boot_secondary, > -- > 1.9.1 > >