ARM: appropriate __init annotation for const data
Subsystems (12)
PATCH 1/1 ARM: appropriate __init annotation for const data
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.
arch/arm/mach-cns3xxx/core.c +1 -1
@@ -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 ,
arch/arm/mach-davinci/da850.c +2 -2
@@ -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 ,
arch/arm/mach-davinci/da8xx-dt.c +1 -1
@@ -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" ,
arch/arm/mach-lpc32xx/phy3250.c +1 -1
@@ -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" ,
arch/arm/mach-mmp/mmp-dt.c +2 -2
@@ -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 , };
arch/arm/mach-mmp/mmp2-dt.c +1 -1
@@ -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 , };
arch/arm/mach-mxs/mach-mxs.c +1 -1
@@ -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 ,
arch/arm/mach-omap2/vc.c +1 -1
@@ -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 ,
arch/arm/mach-omap2/voltagedomains3xxx_data.c +1 -1
@@ -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 ) {
arch/arm/mach-omap2/voltagedomains44xx_data.c +1 -1
@@ -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 ) {
arch/arm/mach-omap2/voltagedomains54xx_data.c +1 -1
@@ -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 ) {
arch/arm/mach-pxa/pxa-dt.c +1 -1
@@ -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" ,
arch/arm/mach-s3c24xx/mach-s3c2416-dt.c +1 -1
@@ -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
arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c +1 -1
@@ -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
arch/arm/mach-shmobile/board-armadillo800eva.c +1 -1
@@ -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 , };
arch/arm/mach-shmobile/board-bockw-reference.c +1 -1
@@ -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 , };
arch/arm/mach-shmobile/board-bockw.c +1 -1
@@ -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 , };
arch/arm/mach-shmobile/board-kzm9g.c +1 -1
@@ -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 , };
arch/arm/mach-shmobile/board-marzen-reference.c +1 -1
@@ -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 ,
arch/arm/mach-shmobile/board-marzen.c +1 -1
@@ -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 , };
arch/arm/mach-shmobile/setup-r7s72100.c +1 -1
@@ -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 , };
arch/arm/mach-shmobile/setup-r8a73a4.c +1 -1
@@ -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 , };
arch/arm/mach-shmobile/setup-r8a7740.c +1 -1
@@ -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 , };
arch/arm/mach-shmobile/setup-r8a7778.c +1 -1
@@ -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 , };
arch/arm/mach-shmobile/setup-r8a7779.c +1 -1
@@ -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 , };
arch/arm/mach-shmobile/setup-r8a7791.c +1 -1
@@ -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 , };
arch/arm/mach-shmobile/setup-sh73a0.c +1 -1
@@ -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 , };
arch/arm/mach-spear/time.c +1 -1
@@ -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" , }, { }, };
arch/arm/mach-sti/board-dt.c +1 -1
@@ -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" ,
Olof Johansson
AppliedPATCH 1/1 ARM: appropriate __init annotation for const data
Quoted 6 lines · Nicolas Pitre
Init data marked const should be annotated with
__initconstfor correctness and not__initdata. This also fixes LTO builds that otherwise fails with section mismatch errors.Signed-off-by Nicolas Pitre <[email protected]>
Applied, thanks.
-Olof
PATCH 1/1 ARM: appropriate __init annotation for const data
In reply to Nicolas PitreWell... 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.
Quoted 400 lines · Nicolas Pitre
Init data marked const should be annotated with
__initconstfor correctness and not__initdata. This also fixes LTO builds that otherwise fails with section mismatch errors.Signed-off-by Nicolas Pitre <[email protected]>arch/arm/mach-cns3xxx/core.c +1
-1@@ -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 ,arch/arm/mach-davinci/da850.c +2
-2@@ -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 ,arch/arm/mach-davinci/da8xx-dt.c +1
-1@@ -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" ,arch/arm/mach-lpc32xx/phy3250.c +1
-1@@ -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" ,arch/arm/mach-mmp/mmp-dt.c +2
-2@@ -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 , };arch/arm/mach-mmp/mmp2-dt.c +1
-1@@ -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 , };arch/arm/mach-mxs/mach-mxs.c +1
-1@@ -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 ,arch/arm/mach-omap2/vc.c +1
-1@@ -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 ,arch/arm/mach-omap2/voltagedomains3xxx_data.c +1
-1@@ -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 ) {arch/arm/mach-omap2/voltagedomains44xx_data.c +1
-1@@ -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 ) {arch/arm/mach-omap2/voltagedomains54xx_data.c +1
-1@@ -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 ) {arch/arm/mach-pxa/pxa-dt.c +1
-1@@ -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" ,arch/arm/mach-s3c24xx/mach-s3c2416-dt.c +1
-1@@ -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 arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c +1
-1@@ -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 arch/arm/mach-shmobile/board-armadillo800eva.c +1
-1@@ -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 , };arch/arm/mach-shmobile/board-bockw-reference.c +1
-1@@ -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 , };arch/arm/mach-shmobile/board-bockw.c +1
-1@@ -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 , };arch/arm/mach-shmobile/board-kzm9g.c +1
-1@@ -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 , };arch/arm/mach-shmobile/board-marzen-reference.c +1
-1@@ -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 ,arch/arm/mach-shmobile/board-marzen.c +1
-1@@ -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 , };arch/arm/mach-shmobile/setup-r7s72100.c +1
-1@@ -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 , };arch/arm/mach-shmobile/setup-r8a73a4.c +1
-1@@ -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 , };arch/arm/mach-shmobile/setup-r8a7740.c +1
-1@@ -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 , };arch/arm/mach-shmobile/setup-r8a7778.c +1
-1@@ -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 , };arch/arm/mach-shmobile/setup-r8a7779.c +1
-1@@ -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 , };arch/arm/mach-shmobile/setup-r8a7791.c +1
-1@@ -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 , };arch/arm/mach-shmobile/setup-sh73a0.c +1
-1@@ -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 , };arch/arm/mach-spear/time.c +1
-1@@ -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" , }, { }, };arch/arm/mach-sti/board-dt.c +1
-1@@ -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" ,
PATCH 1/1 ARM: appropriate __init annotation for const data
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
Quoted 408 lines · Nicolas Pitre
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.
Quoted 400 lines · Nicolas Pitre
Init data marked const should be annotated with
__initconstfor correctness and not__initdata. This also fixes LTO builds that otherwise fails with section mismatch errors.Signed-off-by Nicolas Pitre <[email protected]>arch/arm/mach-cns3xxx/core.c +1
-1@@ -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 ,arch/arm/mach-davinci/da850.c +2
-2@@ -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 ,arch/arm/mach-davinci/da8xx-dt.c +1
-1@@ -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" ,arch/arm/mach-lpc32xx/phy3250.c +1
-1@@ -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" ,arch/arm/mach-mmp/mmp-dt.c +2
-2@@ -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 , };arch/arm/mach-mmp/mmp2-dt.c +1
-1@@ -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 , };arch/arm/mach-mxs/mach-mxs.c +1
-1@@ -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 ,arch/arm/mach-omap2/vc.c +1
-1@@ -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 ,arch/arm/mach-omap2/voltagedomains3xxx_data.c +1
-1@@ -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 ) {arch/arm/mach-omap2/voltagedomains44xx_data.c +1
-1@@ -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 ) {arch/arm/mach-omap2/voltagedomains54xx_data.c +1
-1@@ -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 ) {arch/arm/mach-pxa/pxa-dt.c +1
-1@@ -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" ,arch/arm/mach-s3c24xx/mach-s3c2416-dt.c +1
-1@@ -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 arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c +1
-1@@ -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 arch/arm/mach-shmobile/board-armadillo800eva.c +1
-1@@ -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 , };arch/arm/mach-shmobile/board-bockw-reference.c +1
-1@@ -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 , };arch/arm/mach-shmobile/board-bockw.c +1
-1@@ -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 , };arch/arm/mach-shmobile/board-kzm9g.c +1
-1@@ -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 , };arch/arm/mach-shmobile/board-marzen-reference.c +1
-1@@ -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 ,arch/arm/mach-shmobile/board-marzen.c +1
-1@@ -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 , };arch/arm/mach-shmobile/setup-r7s72100.c +1
-1@@ -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 , };arch/arm/mach-shmobile/setup-r8a73a4.c +1
-1@@ -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 , };arch/arm/mach-shmobile/setup-r8a7740.c +1
-1@@ -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 , };arch/arm/mach-shmobile/setup-r8a7778.c +1
-1@@ -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 , };arch/arm/mach-shmobile/setup-r8a7779.c +1
-1@@ -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 , };arch/arm/mach-shmobile/setup-r8a7791.c +1
-1@@ -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 , };arch/arm/mach-shmobile/setup-sh73a0.c +1
-1@@ -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 , };arch/arm/mach-spear/time.c +1
-1@@ -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" , }, { }, };arch/arm/mach-sti/board-dt.c +1
-1@@ -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" ,
PATCH 1/1 ARM: appropriate __init annotation for const data
In reply to Nicolas PitreHello Nico,
Quoted 12 lines · Nicolas Pitre
Init data marked const should be annotated with
__initconstfor correctness and not__initdata. This also fixes LTO builds that otherwise fails with section mismatch errors.Signed-off-by Nicolas Pitre <[email protected]>arch/arm/mach-cns3xxx/core.c +0
-0
arch/arm/mach-cns3xxx/core.c static void __init cns3xxx_init(void) · line 395
Quoted 5 lines
arch/arm/mach-cns3xxx/core.c +1
-1@@ -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
Signature · 2 lines
Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ |