* [PATCH] ARM: appropriate __init annotation for const data
@ 2015-07-24 18:54 Nicolas Pitre
2015-07-26 19:39 ` Olof Johansson
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Nicolas Pitre @ 2015-07-24 18:54 UTC (permalink / raw)
To: linux-arm-kernel
Init data marked const should be annotated with __initconst for
correctness and not __initdata. This also fixes LTO builds that
otherwise fails with section mismatch errors.
Signed-off-by: Nicolas Pitre <nico@linaro.org>
diff --git a/arch/arm/mach-cns3xxx/core.c b/arch/arm/mach-cns3xxx/core.c
index 4e9837ded9..87eb359048 100644
--- a/arch/arm/mach-cns3xxx/core.c
+++ b/arch/arm/mach-cns3xxx/core.c
@@ -392,7 +392,7 @@ static void __init cns3xxx_init(void)
cns3xxx_auxdata, NULL);
}
-static const char *cns3xxx_dt_compat[] __initdata = {
+static const char *cns3xxx_dt_compat[] __initconst = {
"cavium,cns3410",
"cavium,cns3420",
NULL,
diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c
index 3b8740c083..676997895e 100644
--- a/arch/arm/mach-davinci/da850.c
+++ b/arch/arm/mach-davinci/da850.c
@@ -715,7 +715,7 @@ const short da850_lcdcntl_pins[] __initconst = {
-1
};
-const short da850_vpif_capture_pins[] __initdata = {
+const short da850_vpif_capture_pins[] __initconst = {
DA850_VPIF_DIN0, DA850_VPIF_DIN1, DA850_VPIF_DIN2, DA850_VPIF_DIN3,
DA850_VPIF_DIN4, DA850_VPIF_DIN5, DA850_VPIF_DIN6, DA850_VPIF_DIN7,
DA850_VPIF_DIN8, DA850_VPIF_DIN9, DA850_VPIF_DIN10, DA850_VPIF_DIN11,
@@ -725,7 +725,7 @@ const short da850_vpif_capture_pins[] __initdata = {
-1
};
-const short da850_vpif_display_pins[] __initdata = {
+const short da850_vpif_display_pins[] __initconst = {
DA850_VPIF_DOUT0, DA850_VPIF_DOUT1, DA850_VPIF_DOUT2, DA850_VPIF_DOUT3,
DA850_VPIF_DOUT4, DA850_VPIF_DOUT5, DA850_VPIF_DOUT6, DA850_VPIF_DOUT7,
DA850_VPIF_DOUT8, DA850_VPIF_DOUT9, DA850_VPIF_DOUT10,
diff --git a/arch/arm/mach-davinci/da8xx-dt.c b/arch/arm/mach-davinci/da8xx-dt.c
index 438f68547f..33c3438235 100644
--- a/arch/arm/mach-davinci/da8xx-dt.c
+++ b/arch/arm/mach-davinci/da8xx-dt.c
@@ -59,7 +59,7 @@ static void __init da850_init_machine(void)
}
-static const char *da850_boards_compat[] __initdata = {
+static const char *da850_boards_compat[] __initconst = {
"enbw,cmc",
"ti,da850-evm",
"ti,da850",
diff --git a/arch/arm/mach-lpc32xx/phy3250.c b/arch/arm/mach-lpc32xx/phy3250.c
index 7858d5b6f6..d3c6cf1ef2 100644
--- a/arch/arm/mach-lpc32xx/phy3250.c
+++ b/arch/arm/mach-lpc32xx/phy3250.c
@@ -248,7 +248,7 @@ static void __init lpc3250_machine_init(void)
lpc32xx_auxdata_lookup, NULL);
}
-static char const *lpc32xx_dt_compat[] __initdata = {
+static const char *lpc32xx_dt_compat[] __initconst = {
"nxp,lpc3220",
"nxp,lpc3230",
"nxp,lpc3240",
diff --git a/arch/arm/mach-mmp/mmp-dt.c b/arch/arm/mach-mmp/mmp-dt.c
index b2296c9309..2dde9ccee9 100644
--- a/arch/arm/mach-mmp/mmp-dt.c
+++ b/arch/arm/mach-mmp/mmp-dt.c
@@ -20,12 +20,12 @@
extern void __init mmp_dt_init_timer(void);
-static const char *pxa168_dt_board_compat[] __initdata = {
+static const char *pxa168_dt_board_compat[] __initconst = {
"mrvl,pxa168-aspenite",
NULL,
};
-static const char *pxa910_dt_board_compat[] __initdata = {
+static const char *pxa910_dt_board_compat[] __initconst = {
"mrvl,pxa910-dkb",
NULL,
};
diff --git a/arch/arm/mach-mmp/mmp2-dt.c b/arch/arm/mach-mmp/mmp2-dt.c
index 998c0f533a..5f305f3cc5 100644
--- a/arch/arm/mach-mmp/mmp2-dt.c
+++ b/arch/arm/mach-mmp/mmp2-dt.c
@@ -30,7 +30,7 @@ static void __init mmp_init_time(void)
of_clk_init(NULL);
}
-static const char *mmp2_dt_board_compat[] __initdata = {
+static const char *mmp2_dt_board_compat[] __initconst = {
"mrvl,mmp2-brownstone",
NULL,
};
diff --git a/arch/arm/mach-mxs/mach-mxs.c b/arch/arm/mach-mxs/mach-mxs.c
index 2e7cec86e5..0c352bff67 100644
--- a/arch/arm/mach-mxs/mach-mxs.c
+++ b/arch/arm/mach-mxs/mach-mxs.c
@@ -528,7 +528,7 @@ static void mxs_restart(enum reboot_mode mode, const char *cmd)
soft_restart(0);
}
-static const char *mxs_dt_compat[] __initdata = {
+static const char *mxs_dt_compat[] __initconst = {
"fsl,imx28",
"fsl,imx23",
NULL,
diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
index 076fd20d7e..c9ae7bed68 100644
--- a/arch/arm/mach-omap2/vc.c
+++ b/arch/arm/mach-omap2/vc.c
@@ -563,7 +563,7 @@ struct i2c_init_data {
u8 hsscll_12;
};
-static const __initdata struct i2c_init_data omap4_i2c_timing_data[] = {
+static const struct i2c_init_data omap4_i2c_timing_data[] __initconst = {
{
.load = 50,
.loadbits = 0x3,
diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
index 261bb7cb4e..99c222ea0e 100644
--- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
+++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
@@ -95,7 +95,7 @@ static struct voltagedomain *voltagedomains_am35xx[] __initdata = {
};
-static const char *sys_clk_name __initdata = "sys_ck";
+static const char *sys_clk_name __initconst = "sys_ck";
void __init omap3xxx_voltagedomains_init(void)
{
diff --git a/arch/arm/mach-omap2/voltagedomains44xx_data.c b/arch/arm/mach-omap2/voltagedomains44xx_data.c
index 48b22a0a0c..c98c36f629 100644
--- a/arch/arm/mach-omap2/voltagedomains44xx_data.c
+++ b/arch/arm/mach-omap2/voltagedomains44xx_data.c
@@ -92,7 +92,7 @@ static struct voltagedomain *voltagedomains_omap4[] __initdata = {
NULL,
};
-static const char *sys_clk_name __initdata = "sys_clkin_ck";
+static const char *sys_clk_name __initconst = "sys_clkin_ck";
void __init omap44xx_voltagedomains_init(void)
{
diff --git a/arch/arm/mach-omap2/voltagedomains54xx_data.c b/arch/arm/mach-omap2/voltagedomains54xx_data.c
index 33d22b8725..953d7c164d 100644
--- a/arch/arm/mach-omap2/voltagedomains54xx_data.c
+++ b/arch/arm/mach-omap2/voltagedomains54xx_data.c
@@ -78,7 +78,7 @@ static struct voltagedomain *voltagedomains_omap5[] __initdata = {
NULL,
};
-static const char *sys_clk_name __initdata = "sys_clkin";
+static const char *sys_clk_name __initconst = "sys_clkin";
void __init omap54xx_voltagedomains_init(void)
{
diff --git a/arch/arm/mach-pxa/pxa-dt.c b/arch/arm/mach-pxa/pxa-dt.c
index 7e0e5bd0c9..0aa1e3ebd4 100644
--- a/arch/arm/mach-pxa/pxa-dt.c
+++ b/arch/arm/mach-pxa/pxa-dt.c
@@ -39,7 +39,7 @@ static void __init pxa3xx_dt_init(void)
pxa3xx_auxdata_lookup, NULL);
}
-static const char *pxa3xx_dt_board_compat[] __initdata = {
+static const char *pxa3xx_dt_board_compat[] __initconst = {
"marvell,pxa300",
"marvell,pxa310",
"marvell,pxa320",
diff --git a/arch/arm/mach-s3c24xx/mach-s3c2416-dt.c b/arch/arm/mach-s3c24xx/mach-s3c2416-dt.c
index f886478b88..8d5acf1675 100644
--- a/arch/arm/mach-s3c24xx/mach-s3c2416-dt.c
+++ b/arch/arm/mach-s3c24xx/mach-s3c2416-dt.c
@@ -39,7 +39,7 @@ static void __init s3c2416_dt_machine_init(void)
s3c_pm_init();
}
-static char const *s3c2416_dt_compat[] __initdata = {
+static const char *s3c2416_dt_compat[] __initconst = {
"samsung,s3c2416",
"samsung,s3c2450",
NULL
diff --git a/arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c b/arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c
index 2fddf38192..ba122faef2 100644
--- a/arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c
+++ b/arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c
@@ -61,7 +61,7 @@ static void s3c64xx_dt_restart(enum reboot_mode mode, const char *cmd)
soft_restart(0);
}
-static char const *s3c64xx_dt_compat[] __initdata = {
+static const char *s3c64xx_dt_compat[] __initconst = {
"samsung,s3c6400",
"samsung,s3c6410",
NULL
diff --git a/arch/arm/mach-shmobile/board-armadillo800eva.c b/arch/arm/mach-shmobile/board-armadillo800eva.c
index bf37e3c532..e67d24c073 100644
--- a/arch/arm/mach-shmobile/board-armadillo800eva.c
+++ b/arch/arm/mach-shmobile/board-armadillo800eva.c
@@ -1348,7 +1348,7 @@ static void eva_restart(enum reboot_mode mode, const char *cmd)
writel((1 << 31), RESCNT2);
}
-static const char *eva_boards_compat_dt[] __initdata = {
+static const char *eva_boards_compat_dt[] __initconst = {
"renesas,armadillo800eva",
NULL,
};
diff --git a/arch/arm/mach-shmobile/board-bockw-reference.c b/arch/arm/mach-shmobile/board-bockw-reference.c
index 9a74efda3d..820c744260 100644
--- a/arch/arm/mach-shmobile/board-bockw-reference.c
+++ b/arch/arm/mach-shmobile/board-bockw-reference.c
@@ -72,7 +72,7 @@ static void __init bockw_init(void)
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
}
-static const char *bockw_boards_compat_dt[] __initdata = {
+static const char *bockw_boards_compat_dt[] __initconst = {
"renesas,bockw-reference",
NULL,
};
diff --git a/arch/arm/mach-shmobile/board-bockw.c b/arch/arm/mach-shmobile/board-bockw.c
index 25558d1f41..d266b40dbe 100644
--- a/arch/arm/mach-shmobile/board-bockw.c
+++ b/arch/arm/mach-shmobile/board-bockw.c
@@ -723,7 +723,7 @@ static void __init bockw_init_late(void)
ADD_USB_FUNC_DEVICE_IF_POSSIBLE();
}
-static const char *bockw_boards_compat_dt[] __initdata = {
+static const char *bockw_boards_compat_dt[] __initconst = {
"renesas,bockw",
NULL,
};
diff --git a/arch/arm/mach-shmobile/board-kzm9g.c b/arch/arm/mach-shmobile/board-kzm9g.c
index 260d8319fd..17f3e6abb0 100644
--- a/arch/arm/mach-shmobile/board-kzm9g.c
+++ b/arch/arm/mach-shmobile/board-kzm9g.c
@@ -898,7 +898,7 @@ static void kzm9g_restart(enum reboot_mode mode, const char *cmd)
writel((1 << 31), RESCNT2);
}
-static const char *kzm9g_boards_compat_dt[] __initdata = {
+static const char *kzm9g_boards_compat_dt[] __initconst = {
"renesas,kzm9g",
NULL,
};
diff --git a/arch/arm/mach-shmobile/board-marzen-reference.c b/arch/arm/mach-shmobile/board-marzen-reference.c
index b15eb92326..0fe127c625 100644
--- a/arch/arm/mach-shmobile/board-marzen-reference.c
+++ b/arch/arm/mach-shmobile/board-marzen-reference.c
@@ -38,7 +38,7 @@ static void __init marzen_init(void)
r8a7779_init_irq_extpin_dt(1); /* IRQ1 as individual interrupt */
}
-static const char *marzen_boards_compat_dt[] __initdata = {
+static const char *marzen_boards_compat_dt[] __initconst = {
"renesas,marzen",
"renesas,marzen-reference",
NULL,
diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c
index 51db288f19..0660a64299 100644
--- a/arch/arm/mach-shmobile/board-marzen.c
+++ b/arch/arm/mach-shmobile/board-marzen.c
@@ -330,7 +330,7 @@ static void __init marzen_init(void)
platform_add_devices(marzen_devices, ARRAY_SIZE(marzen_devices));
}
-static const char *marzen_boards_compat_dt[] __initdata = {
+static const char *marzen_boards_compat_dt[] __initconst = {
"renesas,marzen",
NULL,
};
diff --git a/arch/arm/mach-shmobile/setup-r7s72100.c b/arch/arm/mach-shmobile/setup-r7s72100.c
index 171174777b..7f4cd26a52 100644
--- a/arch/arm/mach-shmobile/setup-r7s72100.c
+++ b/arch/arm/mach-shmobile/setup-r7s72100.c
@@ -20,7 +20,7 @@
#include "common.h"
-static const char *r7s72100_boards_compat_dt[] __initdata = {
+static const char *r7s72100_boards_compat_dt[] __initconst = {
"renesas,r7s72100",
NULL,
};
diff --git a/arch/arm/mach-shmobile/setup-r8a73a4.c b/arch/arm/mach-shmobile/setup-r8a73a4.c
index 446cee6119..6a86b929b8 100644
--- a/arch/arm/mach-shmobile/setup-r8a73a4.c
+++ b/arch/arm/mach-shmobile/setup-r8a73a4.c
@@ -20,7 +20,7 @@
#include "common.h"
-static const char *r8a73a4_boards_compat_dt[] __initdata = {
+static const char *r8a73a4_boards_compat_dt[] __initconst = {
"renesas,r8a73a4",
NULL,
};
diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c b/arch/arm/mach-shmobile/setup-r8a7740.c
index 00291cc177..0c59ca1232 100644
--- a/arch/arm/mach-shmobile/setup-r8a7740.c
+++ b/arch/arm/mach-shmobile/setup-r8a7740.c
@@ -787,7 +787,7 @@ static void __init r8a7740_generic_init(void)
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
}
-static const char *r8a7740_boards_compat_dt[] __initdata = {
+static const char *r8a7740_boards_compat_dt[] __initconst = {
"renesas,r8a7740",
NULL,
};
diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c
index c49aa094fe..36c7c05afe 100644
--- a/arch/arm/mach-shmobile/setup-r8a7778.c
+++ b/arch/arm/mach-shmobile/setup-r8a7778.c
@@ -615,7 +615,7 @@ void __init r8a7778_init_irq_dt(void)
iounmap(base);
}
-static const char *r8a7778_compat_dt[] __initdata = {
+static const char *r8a7778_compat_dt[] __initconst = {
"renesas,r8a7778",
NULL,
};
diff --git a/arch/arm/mach-shmobile/setup-r8a7779.c b/arch/arm/mach-shmobile/setup-r8a7779.c
index c03e562be1..2321c9de22 100644
--- a/arch/arm/mach-shmobile/setup-r8a7779.c
+++ b/arch/arm/mach-shmobile/setup-r8a7779.c
@@ -756,7 +756,7 @@ u32 __init r8a7779_read_mode_pins(void)
return mode;
}
-static const char *r8a7779_compat_dt[] __initdata = {
+static const char *r8a7779_compat_dt[] __initconst = {
"renesas,r8a7779",
NULL,
};
diff --git a/arch/arm/mach-shmobile/setup-r8a7791.c b/arch/arm/mach-shmobile/setup-r8a7791.c
index ef8eb3af58..c0c6764747 100644
--- a/arch/arm/mach-shmobile/setup-r8a7791.c
+++ b/arch/arm/mach-shmobile/setup-r8a7791.c
@@ -23,7 +23,7 @@
#include "r8a7791.h"
#include "rcar-gen2.h"
-static const char *r8a7791_boards_compat_dt[] __initdata = {
+static const char *r8a7791_boards_compat_dt[] __initconst = {
"renesas,r8a7791",
NULL,
};
diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c
index fb2ab7590a..cd267299e7 100644
--- a/arch/arm/mach-shmobile/setup-sh73a0.c
+++ b/arch/arm/mach-shmobile/setup-sh73a0.c
@@ -794,7 +794,7 @@ static void __init sh73a0_generic_init(void)
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
}
-static const char *sh73a0_boards_compat_dt[] __initdata = {
+static const char *sh73a0_boards_compat_dt[] __initconst = {
"renesas,sh73a0",
NULL,
};
diff --git a/arch/arm/mach-spear/time.c b/arch/arm/mach-spear/time.c
index 26fda4ed4d..a92b1aab74 100644
--- a/arch/arm/mach-spear/time.c
+++ b/arch/arm/mach-spear/time.c
@@ -193,7 +193,7 @@ static void __init spear_clockevent_init(int irq)
setup_irq(irq, &spear_timer_irq);
}
-const static struct of_device_id timer_of_match[] __initconst = {
+static const struct of_device_id timer_of_match[] __initconst = {
{ .compatible = "st,spear-timer", },
{ },
};
diff --git a/arch/arm/mach-sti/board-dt.c b/arch/arm/mach-sti/board-dt.c
index b373acade3..255a267bb8 100644
--- a/arch/arm/mach-sti/board-dt.c
+++ b/arch/arm/mach-sti/board-dt.c
@@ -14,7 +14,7 @@
#include "smp.h"
-static const char *stih41x_dt_match[] __initdata = {
+static const char *stih41x_dt_match[] __initconst = {
"st,stih415",
"st,stih416",
"st,stih407",
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH] ARM: appropriate __init annotation for const data
2015-07-24 18:54 [PATCH] ARM: appropriate __init annotation for const data Nicolas Pitre
@ 2015-07-26 19:39 ` Olof Johansson
2015-07-27 4:00 ` Nicolas Pitre
2015-07-27 5:59 ` Uwe Kleine-König
2 siblings, 0 replies; 5+ messages in thread
From: Olof Johansson @ 2015-07-26 19:39 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Jul 24, 2015 at 02:54:04PM -0400, Nicolas Pitre wrote:
>
> Init data marked const should be annotated with __initconst for
> correctness and not __initdata. This also fixes LTO builds that
> otherwise fails with section mismatch errors.
>
> Signed-off-by: Nicolas Pitre <nico@linaro.org>
Applied, thanks.
-Olof
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] ARM: appropriate __init annotation for const data
2015-07-24 18:54 [PATCH] ARM: appropriate __init annotation for const data Nicolas Pitre
2015-07-26 19:39 ` Olof Johansson
@ 2015-07-27 4:00 ` Nicolas Pitre
2015-07-27 6:46 ` Olof Johansson
2015-07-27 5:59 ` Uwe Kleine-König
2 siblings, 1 reply; 5+ messages in thread
From: Nicolas Pitre @ 2015-07-27 4:00 UTC (permalink / raw)
To: linux-arm-kernel
Well... The kbuild test robot reports section mismatch for some machines
with this patch applied. I fail to understand why. Unless someone
else figures out what's going on, you should probably drop this patch
for now.
On Fri, 24 Jul 2015, Nicolas Pitre wrote:
>
> Init data marked const should be annotated with __initconst for
> correctness and not __initdata. This also fixes LTO builds that
> otherwise fails with section mismatch errors.
>
> Signed-off-by: Nicolas Pitre <nico@linaro.org>
>
> diff --git a/arch/arm/mach-cns3xxx/core.c b/arch/arm/mach-cns3xxx/core.c
> index 4e9837ded9..87eb359048 100644
> --- a/arch/arm/mach-cns3xxx/core.c
> +++ b/arch/arm/mach-cns3xxx/core.c
> @@ -392,7 +392,7 @@ static void __init cns3xxx_init(void)
> cns3xxx_auxdata, NULL);
> }
>
> -static const char *cns3xxx_dt_compat[] __initdata = {
> +static const char *cns3xxx_dt_compat[] __initconst = {
> "cavium,cns3410",
> "cavium,cns3420",
> NULL,
> diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c
> index 3b8740c083..676997895e 100644
> --- a/arch/arm/mach-davinci/da850.c
> +++ b/arch/arm/mach-davinci/da850.c
> @@ -715,7 +715,7 @@ const short da850_lcdcntl_pins[] __initconst = {
> -1
> };
>
> -const short da850_vpif_capture_pins[] __initdata = {
> +const short da850_vpif_capture_pins[] __initconst = {
> DA850_VPIF_DIN0, DA850_VPIF_DIN1, DA850_VPIF_DIN2, DA850_VPIF_DIN3,
> DA850_VPIF_DIN4, DA850_VPIF_DIN5, DA850_VPIF_DIN6, DA850_VPIF_DIN7,
> DA850_VPIF_DIN8, DA850_VPIF_DIN9, DA850_VPIF_DIN10, DA850_VPIF_DIN11,
> @@ -725,7 +725,7 @@ const short da850_vpif_capture_pins[] __initdata = {
> -1
> };
>
> -const short da850_vpif_display_pins[] __initdata = {
> +const short da850_vpif_display_pins[] __initconst = {
> DA850_VPIF_DOUT0, DA850_VPIF_DOUT1, DA850_VPIF_DOUT2, DA850_VPIF_DOUT3,
> DA850_VPIF_DOUT4, DA850_VPIF_DOUT5, DA850_VPIF_DOUT6, DA850_VPIF_DOUT7,
> DA850_VPIF_DOUT8, DA850_VPIF_DOUT9, DA850_VPIF_DOUT10,
> diff --git a/arch/arm/mach-davinci/da8xx-dt.c b/arch/arm/mach-davinci/da8xx-dt.c
> index 438f68547f..33c3438235 100644
> --- a/arch/arm/mach-davinci/da8xx-dt.c
> +++ b/arch/arm/mach-davinci/da8xx-dt.c
> @@ -59,7 +59,7 @@ static void __init da850_init_machine(void)
>
> }
>
> -static const char *da850_boards_compat[] __initdata = {
> +static const char *da850_boards_compat[] __initconst = {
> "enbw,cmc",
> "ti,da850-evm",
> "ti,da850",
> diff --git a/arch/arm/mach-lpc32xx/phy3250.c b/arch/arm/mach-lpc32xx/phy3250.c
> index 7858d5b6f6..d3c6cf1ef2 100644
> --- a/arch/arm/mach-lpc32xx/phy3250.c
> +++ b/arch/arm/mach-lpc32xx/phy3250.c
> @@ -248,7 +248,7 @@ static void __init lpc3250_machine_init(void)
> lpc32xx_auxdata_lookup, NULL);
> }
>
> -static char const *lpc32xx_dt_compat[] __initdata = {
> +static const char *lpc32xx_dt_compat[] __initconst = {
> "nxp,lpc3220",
> "nxp,lpc3230",
> "nxp,lpc3240",
> diff --git a/arch/arm/mach-mmp/mmp-dt.c b/arch/arm/mach-mmp/mmp-dt.c
> index b2296c9309..2dde9ccee9 100644
> --- a/arch/arm/mach-mmp/mmp-dt.c
> +++ b/arch/arm/mach-mmp/mmp-dt.c
> @@ -20,12 +20,12 @@
>
> extern void __init mmp_dt_init_timer(void);
>
> -static const char *pxa168_dt_board_compat[] __initdata = {
> +static const char *pxa168_dt_board_compat[] __initconst = {
> "mrvl,pxa168-aspenite",
> NULL,
> };
>
> -static const char *pxa910_dt_board_compat[] __initdata = {
> +static const char *pxa910_dt_board_compat[] __initconst = {
> "mrvl,pxa910-dkb",
> NULL,
> };
> diff --git a/arch/arm/mach-mmp/mmp2-dt.c b/arch/arm/mach-mmp/mmp2-dt.c
> index 998c0f533a..5f305f3cc5 100644
> --- a/arch/arm/mach-mmp/mmp2-dt.c
> +++ b/arch/arm/mach-mmp/mmp2-dt.c
> @@ -30,7 +30,7 @@ static void __init mmp_init_time(void)
> of_clk_init(NULL);
> }
>
> -static const char *mmp2_dt_board_compat[] __initdata = {
> +static const char *mmp2_dt_board_compat[] __initconst = {
> "mrvl,mmp2-brownstone",
> NULL,
> };
> diff --git a/arch/arm/mach-mxs/mach-mxs.c b/arch/arm/mach-mxs/mach-mxs.c
> index 2e7cec86e5..0c352bff67 100644
> --- a/arch/arm/mach-mxs/mach-mxs.c
> +++ b/arch/arm/mach-mxs/mach-mxs.c
> @@ -528,7 +528,7 @@ static void mxs_restart(enum reboot_mode mode, const char *cmd)
> soft_restart(0);
> }
>
> -static const char *mxs_dt_compat[] __initdata = {
> +static const char *mxs_dt_compat[] __initconst = {
> "fsl,imx28",
> "fsl,imx23",
> NULL,
> diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
> index 076fd20d7e..c9ae7bed68 100644
> --- a/arch/arm/mach-omap2/vc.c
> +++ b/arch/arm/mach-omap2/vc.c
> @@ -563,7 +563,7 @@ struct i2c_init_data {
> u8 hsscll_12;
> };
>
> -static const __initdata struct i2c_init_data omap4_i2c_timing_data[] = {
> +static const struct i2c_init_data omap4_i2c_timing_data[] __initconst = {
> {
> .load = 50,
> .loadbits = 0x3,
> diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> index 261bb7cb4e..99c222ea0e 100644
> --- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> +++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
> @@ -95,7 +95,7 @@ static struct voltagedomain *voltagedomains_am35xx[] __initdata = {
> };
>
>
> -static const char *sys_clk_name __initdata = "sys_ck";
> +static const char *sys_clk_name __initconst = "sys_ck";
>
> void __init omap3xxx_voltagedomains_init(void)
> {
> diff --git a/arch/arm/mach-omap2/voltagedomains44xx_data.c b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> index 48b22a0a0c..c98c36f629 100644
> --- a/arch/arm/mach-omap2/voltagedomains44xx_data.c
> +++ b/arch/arm/mach-omap2/voltagedomains44xx_data.c
> @@ -92,7 +92,7 @@ static struct voltagedomain *voltagedomains_omap4[] __initdata = {
> NULL,
> };
>
> -static const char *sys_clk_name __initdata = "sys_clkin_ck";
> +static const char *sys_clk_name __initconst = "sys_clkin_ck";
>
> void __init omap44xx_voltagedomains_init(void)
> {
> diff --git a/arch/arm/mach-omap2/voltagedomains54xx_data.c b/arch/arm/mach-omap2/voltagedomains54xx_data.c
> index 33d22b8725..953d7c164d 100644
> --- a/arch/arm/mach-omap2/voltagedomains54xx_data.c
> +++ b/arch/arm/mach-omap2/voltagedomains54xx_data.c
> @@ -78,7 +78,7 @@ static struct voltagedomain *voltagedomains_omap5[] __initdata = {
> NULL,
> };
>
> -static const char *sys_clk_name __initdata = "sys_clkin";
> +static const char *sys_clk_name __initconst = "sys_clkin";
>
> void __init omap54xx_voltagedomains_init(void)
> {
> diff --git a/arch/arm/mach-pxa/pxa-dt.c b/arch/arm/mach-pxa/pxa-dt.c
> index 7e0e5bd0c9..0aa1e3ebd4 100644
> --- a/arch/arm/mach-pxa/pxa-dt.c
> +++ b/arch/arm/mach-pxa/pxa-dt.c
> @@ -39,7 +39,7 @@ static void __init pxa3xx_dt_init(void)
> pxa3xx_auxdata_lookup, NULL);
> }
>
> -static const char *pxa3xx_dt_board_compat[] __initdata = {
> +static const char *pxa3xx_dt_board_compat[] __initconst = {
> "marvell,pxa300",
> "marvell,pxa310",
> "marvell,pxa320",
> diff --git a/arch/arm/mach-s3c24xx/mach-s3c2416-dt.c b/arch/arm/mach-s3c24xx/mach-s3c2416-dt.c
> index f886478b88..8d5acf1675 100644
> --- a/arch/arm/mach-s3c24xx/mach-s3c2416-dt.c
> +++ b/arch/arm/mach-s3c24xx/mach-s3c2416-dt.c
> @@ -39,7 +39,7 @@ static void __init s3c2416_dt_machine_init(void)
> s3c_pm_init();
> }
>
> -static char const *s3c2416_dt_compat[] __initdata = {
> +static const char *s3c2416_dt_compat[] __initconst = {
> "samsung,s3c2416",
> "samsung,s3c2450",
> NULL
> diff --git a/arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c b/arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c
> index 2fddf38192..ba122faef2 100644
> --- a/arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c
> +++ b/arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c
> @@ -61,7 +61,7 @@ static void s3c64xx_dt_restart(enum reboot_mode mode, const char *cmd)
> soft_restart(0);
> }
>
> -static char const *s3c64xx_dt_compat[] __initdata = {
> +static const char *s3c64xx_dt_compat[] __initconst = {
> "samsung,s3c6400",
> "samsung,s3c6410",
> NULL
> diff --git a/arch/arm/mach-shmobile/board-armadillo800eva.c b/arch/arm/mach-shmobile/board-armadillo800eva.c
> index bf37e3c532..e67d24c073 100644
> --- a/arch/arm/mach-shmobile/board-armadillo800eva.c
> +++ b/arch/arm/mach-shmobile/board-armadillo800eva.c
> @@ -1348,7 +1348,7 @@ static void eva_restart(enum reboot_mode mode, const char *cmd)
> writel((1 << 31), RESCNT2);
> }
>
> -static const char *eva_boards_compat_dt[] __initdata = {
> +static const char *eva_boards_compat_dt[] __initconst = {
> "renesas,armadillo800eva",
> NULL,
> };
> diff --git a/arch/arm/mach-shmobile/board-bockw-reference.c b/arch/arm/mach-shmobile/board-bockw-reference.c
> index 9a74efda3d..820c744260 100644
> --- a/arch/arm/mach-shmobile/board-bockw-reference.c
> +++ b/arch/arm/mach-shmobile/board-bockw-reference.c
> @@ -72,7 +72,7 @@ static void __init bockw_init(void)
> of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
> }
>
> -static const char *bockw_boards_compat_dt[] __initdata = {
> +static const char *bockw_boards_compat_dt[] __initconst = {
> "renesas,bockw-reference",
> NULL,
> };
> diff --git a/arch/arm/mach-shmobile/board-bockw.c b/arch/arm/mach-shmobile/board-bockw.c
> index 25558d1f41..d266b40dbe 100644
> --- a/arch/arm/mach-shmobile/board-bockw.c
> +++ b/arch/arm/mach-shmobile/board-bockw.c
> @@ -723,7 +723,7 @@ static void __init bockw_init_late(void)
> ADD_USB_FUNC_DEVICE_IF_POSSIBLE();
> }
>
> -static const char *bockw_boards_compat_dt[] __initdata = {
> +static const char *bockw_boards_compat_dt[] __initconst = {
> "renesas,bockw",
> NULL,
> };
> diff --git a/arch/arm/mach-shmobile/board-kzm9g.c b/arch/arm/mach-shmobile/board-kzm9g.c
> index 260d8319fd..17f3e6abb0 100644
> --- a/arch/arm/mach-shmobile/board-kzm9g.c
> +++ b/arch/arm/mach-shmobile/board-kzm9g.c
> @@ -898,7 +898,7 @@ static void kzm9g_restart(enum reboot_mode mode, const char *cmd)
> writel((1 << 31), RESCNT2);
> }
>
> -static const char *kzm9g_boards_compat_dt[] __initdata = {
> +static const char *kzm9g_boards_compat_dt[] __initconst = {
> "renesas,kzm9g",
> NULL,
> };
> diff --git a/arch/arm/mach-shmobile/board-marzen-reference.c b/arch/arm/mach-shmobile/board-marzen-reference.c
> index b15eb92326..0fe127c625 100644
> --- a/arch/arm/mach-shmobile/board-marzen-reference.c
> +++ b/arch/arm/mach-shmobile/board-marzen-reference.c
> @@ -38,7 +38,7 @@ static void __init marzen_init(void)
> r8a7779_init_irq_extpin_dt(1); /* IRQ1 as individual interrupt */
> }
>
> -static const char *marzen_boards_compat_dt[] __initdata = {
> +static const char *marzen_boards_compat_dt[] __initconst = {
> "renesas,marzen",
> "renesas,marzen-reference",
> NULL,
> diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c
> index 51db288f19..0660a64299 100644
> --- a/arch/arm/mach-shmobile/board-marzen.c
> +++ b/arch/arm/mach-shmobile/board-marzen.c
> @@ -330,7 +330,7 @@ static void __init marzen_init(void)
> platform_add_devices(marzen_devices, ARRAY_SIZE(marzen_devices));
> }
>
> -static const char *marzen_boards_compat_dt[] __initdata = {
> +static const char *marzen_boards_compat_dt[] __initconst = {
> "renesas,marzen",
> NULL,
> };
> diff --git a/arch/arm/mach-shmobile/setup-r7s72100.c b/arch/arm/mach-shmobile/setup-r7s72100.c
> index 171174777b..7f4cd26a52 100644
> --- a/arch/arm/mach-shmobile/setup-r7s72100.c
> +++ b/arch/arm/mach-shmobile/setup-r7s72100.c
> @@ -20,7 +20,7 @@
>
> #include "common.h"
>
> -static const char *r7s72100_boards_compat_dt[] __initdata = {
> +static const char *r7s72100_boards_compat_dt[] __initconst = {
> "renesas,r7s72100",
> NULL,
> };
> diff --git a/arch/arm/mach-shmobile/setup-r8a73a4.c b/arch/arm/mach-shmobile/setup-r8a73a4.c
> index 446cee6119..6a86b929b8 100644
> --- a/arch/arm/mach-shmobile/setup-r8a73a4.c
> +++ b/arch/arm/mach-shmobile/setup-r8a73a4.c
> @@ -20,7 +20,7 @@
>
> #include "common.h"
>
> -static const char *r8a73a4_boards_compat_dt[] __initdata = {
> +static const char *r8a73a4_boards_compat_dt[] __initconst = {
> "renesas,r8a73a4",
> NULL,
> };
> diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c b/arch/arm/mach-shmobile/setup-r8a7740.c
> index 00291cc177..0c59ca1232 100644
> --- a/arch/arm/mach-shmobile/setup-r8a7740.c
> +++ b/arch/arm/mach-shmobile/setup-r8a7740.c
> @@ -787,7 +787,7 @@ static void __init r8a7740_generic_init(void)
> of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
> }
>
> -static const char *r8a7740_boards_compat_dt[] __initdata = {
> +static const char *r8a7740_boards_compat_dt[] __initconst = {
> "renesas,r8a7740",
> NULL,
> };
> diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c
> index c49aa094fe..36c7c05afe 100644
> --- a/arch/arm/mach-shmobile/setup-r8a7778.c
> +++ b/arch/arm/mach-shmobile/setup-r8a7778.c
> @@ -615,7 +615,7 @@ void __init r8a7778_init_irq_dt(void)
> iounmap(base);
> }
>
> -static const char *r8a7778_compat_dt[] __initdata = {
> +static const char *r8a7778_compat_dt[] __initconst = {
> "renesas,r8a7778",
> NULL,
> };
> diff --git a/arch/arm/mach-shmobile/setup-r8a7779.c b/arch/arm/mach-shmobile/setup-r8a7779.c
> index c03e562be1..2321c9de22 100644
> --- a/arch/arm/mach-shmobile/setup-r8a7779.c
> +++ b/arch/arm/mach-shmobile/setup-r8a7779.c
> @@ -756,7 +756,7 @@ u32 __init r8a7779_read_mode_pins(void)
> return mode;
> }
>
> -static const char *r8a7779_compat_dt[] __initdata = {
> +static const char *r8a7779_compat_dt[] __initconst = {
> "renesas,r8a7779",
> NULL,
> };
> diff --git a/arch/arm/mach-shmobile/setup-r8a7791.c b/arch/arm/mach-shmobile/setup-r8a7791.c
> index ef8eb3af58..c0c6764747 100644
> --- a/arch/arm/mach-shmobile/setup-r8a7791.c
> +++ b/arch/arm/mach-shmobile/setup-r8a7791.c
> @@ -23,7 +23,7 @@
> #include "r8a7791.h"
> #include "rcar-gen2.h"
>
> -static const char *r8a7791_boards_compat_dt[] __initdata = {
> +static const char *r8a7791_boards_compat_dt[] __initconst = {
> "renesas,r8a7791",
> NULL,
> };
> diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c
> index fb2ab7590a..cd267299e7 100644
> --- a/arch/arm/mach-shmobile/setup-sh73a0.c
> +++ b/arch/arm/mach-shmobile/setup-sh73a0.c
> @@ -794,7 +794,7 @@ static void __init sh73a0_generic_init(void)
> of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
> }
>
> -static const char *sh73a0_boards_compat_dt[] __initdata = {
> +static const char *sh73a0_boards_compat_dt[] __initconst = {
> "renesas,sh73a0",
> NULL,
> };
> diff --git a/arch/arm/mach-spear/time.c b/arch/arm/mach-spear/time.c
> index 26fda4ed4d..a92b1aab74 100644
> --- a/arch/arm/mach-spear/time.c
> +++ b/arch/arm/mach-spear/time.c
> @@ -193,7 +193,7 @@ static void __init spear_clockevent_init(int irq)
> setup_irq(irq, &spear_timer_irq);
> }
>
> -const static struct of_device_id timer_of_match[] __initconst = {
> +static const struct of_device_id timer_of_match[] __initconst = {
> { .compatible = "st,spear-timer", },
> { },
> };
> diff --git a/arch/arm/mach-sti/board-dt.c b/arch/arm/mach-sti/board-dt.c
> index b373acade3..255a267bb8 100644
> --- a/arch/arm/mach-sti/board-dt.c
> +++ b/arch/arm/mach-sti/board-dt.c
> @@ -14,7 +14,7 @@
>
> #include "smp.h"
>
> -static const char *stih41x_dt_match[] __initdata = {
> +static const char *stih41x_dt_match[] __initconst = {
> "st,stih415",
> "st,stih416",
> "st,stih407",
>
^ permalink raw reply [flat|nested] 5+ messages in thread* [PATCH] ARM: appropriate __init annotation for const data
2015-07-27 4:00 ` Nicolas Pitre
@ 2015-07-27 6:46 ` Olof Johansson
0 siblings, 0 replies; 5+ messages in thread
From: Olof Johansson @ 2015-07-27 6:46 UTC (permalink / raw)
To: linux-arm-kernel
Yeah, I noticed my own builder found a few issues too. I'll drop it
from the 4.2 fixes branch, and when you've respun we'll apply it for
4.3.
-Olof
On Mon, Jul 27, 2015 at 6:00 AM, Nicolas Pitre <nicolas.pitre@linaro.org> wrote:
> Well... The kbuild test robot reports section mismatch for some machines
> with this patch applied. I fail to understand why. Unless someone
> else figures out what's going on, you should probably drop this patch
> for now.
>
>
> On Fri, 24 Jul 2015, Nicolas Pitre wrote:
>
>>
>> Init data marked const should be annotated with __initconst for
>> correctness and not __initdata. This also fixes LTO builds that
>> otherwise fails with section mismatch errors.
>>
>> Signed-off-by: Nicolas Pitre <nico@linaro.org>
>>
>> diff --git a/arch/arm/mach-cns3xxx/core.c b/arch/arm/mach-cns3xxx/core.c
>> index 4e9837ded9..87eb359048 100644
>> --- a/arch/arm/mach-cns3xxx/core.c
>> +++ b/arch/arm/mach-cns3xxx/core.c
>> @@ -392,7 +392,7 @@ static void __init cns3xxx_init(void)
>> cns3xxx_auxdata, NULL);
>> }
>>
>> -static const char *cns3xxx_dt_compat[] __initdata = {
>> +static const char *cns3xxx_dt_compat[] __initconst = {
>> "cavium,cns3410",
>> "cavium,cns3420",
>> NULL,
>> diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c
>> index 3b8740c083..676997895e 100644
>> --- a/arch/arm/mach-davinci/da850.c
>> +++ b/arch/arm/mach-davinci/da850.c
>> @@ -715,7 +715,7 @@ const short da850_lcdcntl_pins[] __initconst = {
>> -1
>> };
>>
>> -const short da850_vpif_capture_pins[] __initdata = {
>> +const short da850_vpif_capture_pins[] __initconst = {
>> DA850_VPIF_DIN0, DA850_VPIF_DIN1, DA850_VPIF_DIN2, DA850_VPIF_DIN3,
>> DA850_VPIF_DIN4, DA850_VPIF_DIN5, DA850_VPIF_DIN6, DA850_VPIF_DIN7,
>> DA850_VPIF_DIN8, DA850_VPIF_DIN9, DA850_VPIF_DIN10, DA850_VPIF_DIN11,
>> @@ -725,7 +725,7 @@ const short da850_vpif_capture_pins[] __initdata = {
>> -1
>> };
>>
>> -const short da850_vpif_display_pins[] __initdata = {
>> +const short da850_vpif_display_pins[] __initconst = {
>> DA850_VPIF_DOUT0, DA850_VPIF_DOUT1, DA850_VPIF_DOUT2, DA850_VPIF_DOUT3,
>> DA850_VPIF_DOUT4, DA850_VPIF_DOUT5, DA850_VPIF_DOUT6, DA850_VPIF_DOUT7,
>> DA850_VPIF_DOUT8, DA850_VPIF_DOUT9, DA850_VPIF_DOUT10,
>> diff --git a/arch/arm/mach-davinci/da8xx-dt.c b/arch/arm/mach-davinci/da8xx-dt.c
>> index 438f68547f..33c3438235 100644
>> --- a/arch/arm/mach-davinci/da8xx-dt.c
>> +++ b/arch/arm/mach-davinci/da8xx-dt.c
>> @@ -59,7 +59,7 @@ static void __init da850_init_machine(void)
>>
>> }
>>
>> -static const char *da850_boards_compat[] __initdata = {
>> +static const char *da850_boards_compat[] __initconst = {
>> "enbw,cmc",
>> "ti,da850-evm",
>> "ti,da850",
>> diff --git a/arch/arm/mach-lpc32xx/phy3250.c b/arch/arm/mach-lpc32xx/phy3250.c
>> index 7858d5b6f6..d3c6cf1ef2 100644
>> --- a/arch/arm/mach-lpc32xx/phy3250.c
>> +++ b/arch/arm/mach-lpc32xx/phy3250.c
>> @@ -248,7 +248,7 @@ static void __init lpc3250_machine_init(void)
>> lpc32xx_auxdata_lookup, NULL);
>> }
>>
>> -static char const *lpc32xx_dt_compat[] __initdata = {
>> +static const char *lpc32xx_dt_compat[] __initconst = {
>> "nxp,lpc3220",
>> "nxp,lpc3230",
>> "nxp,lpc3240",
>> diff --git a/arch/arm/mach-mmp/mmp-dt.c b/arch/arm/mach-mmp/mmp-dt.c
>> index b2296c9309..2dde9ccee9 100644
>> --- a/arch/arm/mach-mmp/mmp-dt.c
>> +++ b/arch/arm/mach-mmp/mmp-dt.c
>> @@ -20,12 +20,12 @@
>>
>> extern void __init mmp_dt_init_timer(void);
>>
>> -static const char *pxa168_dt_board_compat[] __initdata = {
>> +static const char *pxa168_dt_board_compat[] __initconst = {
>> "mrvl,pxa168-aspenite",
>> NULL,
>> };
>>
>> -static const char *pxa910_dt_board_compat[] __initdata = {
>> +static const char *pxa910_dt_board_compat[] __initconst = {
>> "mrvl,pxa910-dkb",
>> NULL,
>> };
>> diff --git a/arch/arm/mach-mmp/mmp2-dt.c b/arch/arm/mach-mmp/mmp2-dt.c
>> index 998c0f533a..5f305f3cc5 100644
>> --- a/arch/arm/mach-mmp/mmp2-dt.c
>> +++ b/arch/arm/mach-mmp/mmp2-dt.c
>> @@ -30,7 +30,7 @@ static void __init mmp_init_time(void)
>> of_clk_init(NULL);
>> }
>>
>> -static const char *mmp2_dt_board_compat[] __initdata = {
>> +static const char *mmp2_dt_board_compat[] __initconst = {
>> "mrvl,mmp2-brownstone",
>> NULL,
>> };
>> diff --git a/arch/arm/mach-mxs/mach-mxs.c b/arch/arm/mach-mxs/mach-mxs.c
>> index 2e7cec86e5..0c352bff67 100644
>> --- a/arch/arm/mach-mxs/mach-mxs.c
>> +++ b/arch/arm/mach-mxs/mach-mxs.c
>> @@ -528,7 +528,7 @@ static void mxs_restart(enum reboot_mode mode, const char *cmd)
>> soft_restart(0);
>> }
>>
>> -static const char *mxs_dt_compat[] __initdata = {
>> +static const char *mxs_dt_compat[] __initconst = {
>> "fsl,imx28",
>> "fsl,imx23",
>> NULL,
>> diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
>> index 076fd20d7e..c9ae7bed68 100644
>> --- a/arch/arm/mach-omap2/vc.c
>> +++ b/arch/arm/mach-omap2/vc.c
>> @@ -563,7 +563,7 @@ struct i2c_init_data {
>> u8 hsscll_12;
>> };
>>
>> -static const __initdata struct i2c_init_data omap4_i2c_timing_data[] = {
>> +static const struct i2c_init_data omap4_i2c_timing_data[] __initconst = {
>> {
>> .load = 50,
>> .loadbits = 0x3,
>> diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
>> index 261bb7cb4e..99c222ea0e 100644
>> --- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
>> +++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
>> @@ -95,7 +95,7 @@ static struct voltagedomain *voltagedomains_am35xx[] __initdata = {
>> };
>>
>>
>> -static const char *sys_clk_name __initdata = "sys_ck";
>> +static const char *sys_clk_name __initconst = "sys_ck";
>>
>> void __init omap3xxx_voltagedomains_init(void)
>> {
>> diff --git a/arch/arm/mach-omap2/voltagedomains44xx_data.c b/arch/arm/mach-omap2/voltagedomains44xx_data.c
>> index 48b22a0a0c..c98c36f629 100644
>> --- a/arch/arm/mach-omap2/voltagedomains44xx_data.c
>> +++ b/arch/arm/mach-omap2/voltagedomains44xx_data.c
>> @@ -92,7 +92,7 @@ static struct voltagedomain *voltagedomains_omap4[] __initdata = {
>> NULL,
>> };
>>
>> -static const char *sys_clk_name __initdata = "sys_clkin_ck";
>> +static const char *sys_clk_name __initconst = "sys_clkin_ck";
>>
>> void __init omap44xx_voltagedomains_init(void)
>> {
>> diff --git a/arch/arm/mach-omap2/voltagedomains54xx_data.c b/arch/arm/mach-omap2/voltagedomains54xx_data.c
>> index 33d22b8725..953d7c164d 100644
>> --- a/arch/arm/mach-omap2/voltagedomains54xx_data.c
>> +++ b/arch/arm/mach-omap2/voltagedomains54xx_data.c
>> @@ -78,7 +78,7 @@ static struct voltagedomain *voltagedomains_omap5[] __initdata = {
>> NULL,
>> };
>>
>> -static const char *sys_clk_name __initdata = "sys_clkin";
>> +static const char *sys_clk_name __initconst = "sys_clkin";
>>
>> void __init omap54xx_voltagedomains_init(void)
>> {
>> diff --git a/arch/arm/mach-pxa/pxa-dt.c b/arch/arm/mach-pxa/pxa-dt.c
>> index 7e0e5bd0c9..0aa1e3ebd4 100644
>> --- a/arch/arm/mach-pxa/pxa-dt.c
>> +++ b/arch/arm/mach-pxa/pxa-dt.c
>> @@ -39,7 +39,7 @@ static void __init pxa3xx_dt_init(void)
>> pxa3xx_auxdata_lookup, NULL);
>> }
>>
>> -static const char *pxa3xx_dt_board_compat[] __initdata = {
>> +static const char *pxa3xx_dt_board_compat[] __initconst = {
>> "marvell,pxa300",
>> "marvell,pxa310",
>> "marvell,pxa320",
>> diff --git a/arch/arm/mach-s3c24xx/mach-s3c2416-dt.c b/arch/arm/mach-s3c24xx/mach-s3c2416-dt.c
>> index f886478b88..8d5acf1675 100644
>> --- a/arch/arm/mach-s3c24xx/mach-s3c2416-dt.c
>> +++ b/arch/arm/mach-s3c24xx/mach-s3c2416-dt.c
>> @@ -39,7 +39,7 @@ static void __init s3c2416_dt_machine_init(void)
>> s3c_pm_init();
>> }
>>
>> -static char const *s3c2416_dt_compat[] __initdata = {
>> +static const char *s3c2416_dt_compat[] __initconst = {
>> "samsung,s3c2416",
>> "samsung,s3c2450",
>> NULL
>> diff --git a/arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c b/arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c
>> index 2fddf38192..ba122faef2 100644
>> --- a/arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c
>> +++ b/arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c
>> @@ -61,7 +61,7 @@ static void s3c64xx_dt_restart(enum reboot_mode mode, const char *cmd)
>> soft_restart(0);
>> }
>>
>> -static char const *s3c64xx_dt_compat[] __initdata = {
>> +static const char *s3c64xx_dt_compat[] __initconst = {
>> "samsung,s3c6400",
>> "samsung,s3c6410",
>> NULL
>> diff --git a/arch/arm/mach-shmobile/board-armadillo800eva.c b/arch/arm/mach-shmobile/board-armadillo800eva.c
>> index bf37e3c532..e67d24c073 100644
>> --- a/arch/arm/mach-shmobile/board-armadillo800eva.c
>> +++ b/arch/arm/mach-shmobile/board-armadillo800eva.c
>> @@ -1348,7 +1348,7 @@ static void eva_restart(enum reboot_mode mode, const char *cmd)
>> writel((1 << 31), RESCNT2);
>> }
>>
>> -static const char *eva_boards_compat_dt[] __initdata = {
>> +static const char *eva_boards_compat_dt[] __initconst = {
>> "renesas,armadillo800eva",
>> NULL,
>> };
>> diff --git a/arch/arm/mach-shmobile/board-bockw-reference.c b/arch/arm/mach-shmobile/board-bockw-reference.c
>> index 9a74efda3d..820c744260 100644
>> --- a/arch/arm/mach-shmobile/board-bockw-reference.c
>> +++ b/arch/arm/mach-shmobile/board-bockw-reference.c
>> @@ -72,7 +72,7 @@ static void __init bockw_init(void)
>> of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
>> }
>>
>> -static const char *bockw_boards_compat_dt[] __initdata = {
>> +static const char *bockw_boards_compat_dt[] __initconst = {
>> "renesas,bockw-reference",
>> NULL,
>> };
>> diff --git a/arch/arm/mach-shmobile/board-bockw.c b/arch/arm/mach-shmobile/board-bockw.c
>> index 25558d1f41..d266b40dbe 100644
>> --- a/arch/arm/mach-shmobile/board-bockw.c
>> +++ b/arch/arm/mach-shmobile/board-bockw.c
>> @@ -723,7 +723,7 @@ static void __init bockw_init_late(void)
>> ADD_USB_FUNC_DEVICE_IF_POSSIBLE();
>> }
>>
>> -static const char *bockw_boards_compat_dt[] __initdata = {
>> +static const char *bockw_boards_compat_dt[] __initconst = {
>> "renesas,bockw",
>> NULL,
>> };
>> diff --git a/arch/arm/mach-shmobile/board-kzm9g.c b/arch/arm/mach-shmobile/board-kzm9g.c
>> index 260d8319fd..17f3e6abb0 100644
>> --- a/arch/arm/mach-shmobile/board-kzm9g.c
>> +++ b/arch/arm/mach-shmobile/board-kzm9g.c
>> @@ -898,7 +898,7 @@ static void kzm9g_restart(enum reboot_mode mode, const char *cmd)
>> writel((1 << 31), RESCNT2);
>> }
>>
>> -static const char *kzm9g_boards_compat_dt[] __initdata = {
>> +static const char *kzm9g_boards_compat_dt[] __initconst = {
>> "renesas,kzm9g",
>> NULL,
>> };
>> diff --git a/arch/arm/mach-shmobile/board-marzen-reference.c b/arch/arm/mach-shmobile/board-marzen-reference.c
>> index b15eb92326..0fe127c625 100644
>> --- a/arch/arm/mach-shmobile/board-marzen-reference.c
>> +++ b/arch/arm/mach-shmobile/board-marzen-reference.c
>> @@ -38,7 +38,7 @@ static void __init marzen_init(void)
>> r8a7779_init_irq_extpin_dt(1); /* IRQ1 as individual interrupt */
>> }
>>
>> -static const char *marzen_boards_compat_dt[] __initdata = {
>> +static const char *marzen_boards_compat_dt[] __initconst = {
>> "renesas,marzen",
>> "renesas,marzen-reference",
>> NULL,
>> diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c
>> index 51db288f19..0660a64299 100644
>> --- a/arch/arm/mach-shmobile/board-marzen.c
>> +++ b/arch/arm/mach-shmobile/board-marzen.c
>> @@ -330,7 +330,7 @@ static void __init marzen_init(void)
>> platform_add_devices(marzen_devices, ARRAY_SIZE(marzen_devices));
>> }
>>
>> -static const char *marzen_boards_compat_dt[] __initdata = {
>> +static const char *marzen_boards_compat_dt[] __initconst = {
>> "renesas,marzen",
>> NULL,
>> };
>> diff --git a/arch/arm/mach-shmobile/setup-r7s72100.c b/arch/arm/mach-shmobile/setup-r7s72100.c
>> index 171174777b..7f4cd26a52 100644
>> --- a/arch/arm/mach-shmobile/setup-r7s72100.c
>> +++ b/arch/arm/mach-shmobile/setup-r7s72100.c
>> @@ -20,7 +20,7 @@
>>
>> #include "common.h"
>>
>> -static const char *r7s72100_boards_compat_dt[] __initdata = {
>> +static const char *r7s72100_boards_compat_dt[] __initconst = {
>> "renesas,r7s72100",
>> NULL,
>> };
>> diff --git a/arch/arm/mach-shmobile/setup-r8a73a4.c b/arch/arm/mach-shmobile/setup-r8a73a4.c
>> index 446cee6119..6a86b929b8 100644
>> --- a/arch/arm/mach-shmobile/setup-r8a73a4.c
>> +++ b/arch/arm/mach-shmobile/setup-r8a73a4.c
>> @@ -20,7 +20,7 @@
>>
>> #include "common.h"
>>
>> -static const char *r8a73a4_boards_compat_dt[] __initdata = {
>> +static const char *r8a73a4_boards_compat_dt[] __initconst = {
>> "renesas,r8a73a4",
>> NULL,
>> };
>> diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c b/arch/arm/mach-shmobile/setup-r8a7740.c
>> index 00291cc177..0c59ca1232 100644
>> --- a/arch/arm/mach-shmobile/setup-r8a7740.c
>> +++ b/arch/arm/mach-shmobile/setup-r8a7740.c
>> @@ -787,7 +787,7 @@ static void __init r8a7740_generic_init(void)
>> of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
>> }
>>
>> -static const char *r8a7740_boards_compat_dt[] __initdata = {
>> +static const char *r8a7740_boards_compat_dt[] __initconst = {
>> "renesas,r8a7740",
>> NULL,
>> };
>> diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c
>> index c49aa094fe..36c7c05afe 100644
>> --- a/arch/arm/mach-shmobile/setup-r8a7778.c
>> +++ b/arch/arm/mach-shmobile/setup-r8a7778.c
>> @@ -615,7 +615,7 @@ void __init r8a7778_init_irq_dt(void)
>> iounmap(base);
>> }
>>
>> -static const char *r8a7778_compat_dt[] __initdata = {
>> +static const char *r8a7778_compat_dt[] __initconst = {
>> "renesas,r8a7778",
>> NULL,
>> };
>> diff --git a/arch/arm/mach-shmobile/setup-r8a7779.c b/arch/arm/mach-shmobile/setup-r8a7779.c
>> index c03e562be1..2321c9de22 100644
>> --- a/arch/arm/mach-shmobile/setup-r8a7779.c
>> +++ b/arch/arm/mach-shmobile/setup-r8a7779.c
>> @@ -756,7 +756,7 @@ u32 __init r8a7779_read_mode_pins(void)
>> return mode;
>> }
>>
>> -static const char *r8a7779_compat_dt[] __initdata = {
>> +static const char *r8a7779_compat_dt[] __initconst = {
>> "renesas,r8a7779",
>> NULL,
>> };
>> diff --git a/arch/arm/mach-shmobile/setup-r8a7791.c b/arch/arm/mach-shmobile/setup-r8a7791.c
>> index ef8eb3af58..c0c6764747 100644
>> --- a/arch/arm/mach-shmobile/setup-r8a7791.c
>> +++ b/arch/arm/mach-shmobile/setup-r8a7791.c
>> @@ -23,7 +23,7 @@
>> #include "r8a7791.h"
>> #include "rcar-gen2.h"
>>
>> -static const char *r8a7791_boards_compat_dt[] __initdata = {
>> +static const char *r8a7791_boards_compat_dt[] __initconst = {
>> "renesas,r8a7791",
>> NULL,
>> };
>> diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c
>> index fb2ab7590a..cd267299e7 100644
>> --- a/arch/arm/mach-shmobile/setup-sh73a0.c
>> +++ b/arch/arm/mach-shmobile/setup-sh73a0.c
>> @@ -794,7 +794,7 @@ static void __init sh73a0_generic_init(void)
>> of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
>> }
>>
>> -static const char *sh73a0_boards_compat_dt[] __initdata = {
>> +static const char *sh73a0_boards_compat_dt[] __initconst = {
>> "renesas,sh73a0",
>> NULL,
>> };
>> diff --git a/arch/arm/mach-spear/time.c b/arch/arm/mach-spear/time.c
>> index 26fda4ed4d..a92b1aab74 100644
>> --- a/arch/arm/mach-spear/time.c
>> +++ b/arch/arm/mach-spear/time.c
>> @@ -193,7 +193,7 @@ static void __init spear_clockevent_init(int irq)
>> setup_irq(irq, &spear_timer_irq);
>> }
>>
>> -const static struct of_device_id timer_of_match[] __initconst = {
>> +static const struct of_device_id timer_of_match[] __initconst = {
>> { .compatible = "st,spear-timer", },
>> { },
>> };
>> diff --git a/arch/arm/mach-sti/board-dt.c b/arch/arm/mach-sti/board-dt.c
>> index b373acade3..255a267bb8 100644
>> --- a/arch/arm/mach-sti/board-dt.c
>> +++ b/arch/arm/mach-sti/board-dt.c
>> @@ -14,7 +14,7 @@
>>
>> #include "smp.h"
>>
>> -static const char *stih41x_dt_match[] __initdata = {
>> +static const char *stih41x_dt_match[] __initconst = {
>> "st,stih415",
>> "st,stih416",
>> "st,stih407",
>>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] ARM: appropriate __init annotation for const data
2015-07-24 18:54 [PATCH] ARM: appropriate __init annotation for const data Nicolas Pitre
2015-07-26 19:39 ` Olof Johansson
2015-07-27 4:00 ` Nicolas Pitre
@ 2015-07-27 5:59 ` Uwe Kleine-König
2 siblings, 0 replies; 5+ messages in thread
From: Uwe Kleine-König @ 2015-07-27 5:59 UTC (permalink / raw)
To: linux-arm-kernel
Hello Nico,
On Fri, Jul 24, 2015 at 02:54:04PM -0400, Nicolas Pitre wrote:
>
> Init data marked const should be annotated with __initconst for
> correctness and not __initdata. This also fixes LTO builds that
> otherwise fails with section mismatch errors.
>
> Signed-off-by: Nicolas Pitre <nico@linaro.org>
>
> diff --git a/arch/arm/mach-cns3xxx/core.c b/arch/arm/mach-cns3xxx/core.c
> index 4e9837ded9..87eb359048 100644
> --- a/arch/arm/mach-cns3xxx/core.c
> +++ b/arch/arm/mach-cns3xxx/core.c
> @@ -392,7 +392,7 @@ static void __init cns3xxx_init(void)
> cns3xxx_auxdata, NULL);
> }
>
> -static const char *cns3xxx_dt_compat[] __initdata = {
> +static const char *cns3xxx_dt_compat[] __initconst = {
this one (and a few others) are wrong. This is a (mutable) array of
pointers to constant strings and so you have to use one of:
static const char *cns3xxx_dt_compat[] __initdata = {
static const char *const cns3xxx_dt_compat[] __initconst = {
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | http://www.pengutronix.de/ |
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-07-27 6:46 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-24 18:54 [PATCH] ARM: appropriate __init annotation for const data Nicolas Pitre
2015-07-26 19:39 ` Olof Johansson
2015-07-27 4:00 ` Nicolas Pitre
2015-07-27 6:46 ` Olof Johansson
2015-07-27 5:59 ` Uwe Kleine-König
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).