* [PATCH 0/3] ARM+ARM64: constify of_device_ids @ 2014-09-10 8:26 ` Uwe Kleine-König 0 siblings, 0 replies; 28+ messages in thread From: Uwe Kleine-König @ 2014-09-10 8:26 UTC (permalink / raw) To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, Grant Likely, Rob Herring, kernel-bIcnvbaLZ9MEGnE8C9+IrQ Hello, most of_device_ids can (and should) be const as the driver core cannot handle changes to compatible strings. So I checked all non-const of_device_ids and they can all be marked as const, for omap2 after some function parameters get a const annotation, too. I split of the changes to mach-omap2 because there (as noted above) some functions need a change there, too. Should I split further by platform? Who is willing to take these patches? Best regards Uwe Uwe Kleine-König (3): ARM: OMAP2+: make of_device_ids const ARM: make of_device_ids const ARM64: make of_device_ids const arch/arm/kernel/perf_event_cpu.c | 2 +- arch/arm/mach-at91/at91rm9200_time.c | 2 +- arch/arm/mach-at91/at91sam9263_devices.c | 2 +- arch/arm/mach-at91/at91sam926x_time.c | 2 +- arch/arm/mach-at91/clock.c | 4 ++-- arch/arm/mach-at91/setup.c | 6 +++--- arch/arm/mach-davinci/da8xx-dt.c | 2 +- arch/arm/mach-imx/mmdc.c | 2 +- arch/arm/mach-keystone/pm_domain.c | 2 +- arch/arm/mach-mmp/time.c | 2 +- arch/arm/mach-mvebu/coherency.c | 2 +- arch/arm/mach-mvebu/pmsu.c | 2 +- arch/arm/mach-omap2/board-generic.c | 2 +- arch/arm/mach-omap2/common.h | 2 +- arch/arm/mach-omap2/gpmc.c | 2 +- arch/arm/mach-omap2/irq.c | 2 +- arch/arm/mach-omap2/pdata-quirks.c | 2 +- arch/arm/mach-omap2/prm_common.c | 2 +- arch/arm/mach-omap2/timer.c | 6 +++--- arch/arm/mach-prima2/platsmp.c | 2 +- arch/arm/mach-sunxi/sunxi.c | 2 +- arch/arm64/kernel/perf_event.c | 2 +- 22 files changed, 27 insertions(+), 27 deletions(-) -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 0/3] ARM+ARM64: constify of_device_ids @ 2014-09-10 8:26 ` Uwe Kleine-König 0 siblings, 0 replies; 28+ messages in thread From: Uwe Kleine-König @ 2014-09-10 8:26 UTC (permalink / raw) To: linux-arm-kernel Hello, most of_device_ids can (and should) be const as the driver core cannot handle changes to compatible strings. So I checked all non-const of_device_ids and they can all be marked as const, for omap2 after some function parameters get a const annotation, too. I split of the changes to mach-omap2 because there (as noted above) some functions need a change there, too. Should I split further by platform? Who is willing to take these patches? Best regards Uwe Uwe Kleine-K?nig (3): ARM: OMAP2+: make of_device_ids const ARM: make of_device_ids const ARM64: make of_device_ids const arch/arm/kernel/perf_event_cpu.c | 2 +- arch/arm/mach-at91/at91rm9200_time.c | 2 +- arch/arm/mach-at91/at91sam9263_devices.c | 2 +- arch/arm/mach-at91/at91sam926x_time.c | 2 +- arch/arm/mach-at91/clock.c | 4 ++-- arch/arm/mach-at91/setup.c | 6 +++--- arch/arm/mach-davinci/da8xx-dt.c | 2 +- arch/arm/mach-imx/mmdc.c | 2 +- arch/arm/mach-keystone/pm_domain.c | 2 +- arch/arm/mach-mmp/time.c | 2 +- arch/arm/mach-mvebu/coherency.c | 2 +- arch/arm/mach-mvebu/pmsu.c | 2 +- arch/arm/mach-omap2/board-generic.c | 2 +- arch/arm/mach-omap2/common.h | 2 +- arch/arm/mach-omap2/gpmc.c | 2 +- arch/arm/mach-omap2/irq.c | 2 +- arch/arm/mach-omap2/pdata-quirks.c | 2 +- arch/arm/mach-omap2/prm_common.c | 2 +- arch/arm/mach-omap2/timer.c | 6 +++--- arch/arm/mach-prima2/platsmp.c | 2 +- arch/arm/mach-sunxi/sunxi.c | 2 +- arch/arm64/kernel/perf_event.c | 2 +- 22 files changed, 27 insertions(+), 27 deletions(-) -- 2.1.0 ^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/3] ARM: OMAP2+: make of_device_ids const 2014-09-10 8:26 ` Uwe Kleine-König @ 2014-09-10 8:26 ` Uwe Kleine-König -1 siblings, 0 replies; 28+ messages in thread From: Uwe Kleine-König @ 2014-09-10 8:26 UTC (permalink / raw) To: linux-arm-kernel, Tony Lindgren, Kevin Hilman, Rajendra Nayak Cc: devicetree, Grant Likely, Rob Herring, kernel, linux-omap of_device_ids (i.e. compatible strings and the respective data) are not supposed to change at runtime. All functions working with of_device_ids provided by <linux/of.h> work with const of_device_ids. So mark the non-const function parameters and structs for OMAP2+ as const, too. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> --- arch/arm/mach-omap2/board-generic.c | 2 +- arch/arm/mach-omap2/common.h | 2 +- arch/arm/mach-omap2/gpmc.c | 2 +- arch/arm/mach-omap2/irq.c | 2 +- arch/arm/mach-omap2/pdata-quirks.c | 2 +- arch/arm/mach-omap2/prm_common.c | 2 +- arch/arm/mach-omap2/timer.c | 6 +++--- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index 9480997ba616..5827abb080e4 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c @@ -27,7 +27,7 @@ #define gic_of_init NULL #endif -static struct of_device_id omap_dt_match_table[] __initdata = { +static const struct of_device_id omap_dt_match_table[] __initconst = { { .compatible = "simple-bus", }, { .compatible = "ti,omap-infra", }, { } diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h index dc571f1d3b8a..79664411e794 100644 --- a/arch/arm/mach-omap2/common.h +++ b/arch/arm/mach-omap2/common.h @@ -307,7 +307,7 @@ static inline void omap4_cpu_resume(void) #endif -void pdata_quirks_init(struct of_device_id *); +void pdata_quirks_init(const struct of_device_id *); void omap_auxdata_legacy_init(struct device *dev); void omap_pcs_legacy_init(int irq, void (*rearm)(void)); diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index 2f97228f188a..a4d52c42a438 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c @@ -1243,7 +1243,7 @@ int gpmc_cs_program_settings(int cs, struct gpmc_settings *p) } #ifdef CONFIG_OF -static struct of_device_id gpmc_dt_ids[] = { +static const struct of_device_id gpmc_dt_ids[] = { { .compatible = "ti,omap2420-gpmc" }, { .compatible = "ti,omap2430-gpmc" }, { .compatible = "ti,omap3430-gpmc" }, /* omap3430 & omap3630 */ diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c index 35b8590c322e..604a976abf14 100644 --- a/arch/arm/mach-omap2/irq.c +++ b/arch/arm/mach-omap2/irq.c @@ -289,7 +289,7 @@ int __init intc_of_init(struct device_node *node, return 0; } -static struct of_device_id irq_match[] __initdata = { +static const struct of_device_id irq_match[] __initconst = { { .compatible = "ti,omap2-intc", .data = intc_of_init, }, { } }; diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c index 90c88d498485..05a8c8b07449 100644 --- a/arch/arm/mach-omap2/pdata-quirks.c +++ b/arch/arm/mach-omap2/pdata-quirks.c @@ -405,7 +405,7 @@ static void pdata_quirks_check(struct pdata_init *quirks) } } -void __init pdata_quirks_init(struct of_device_id *omap_dt_match_table) +void __init pdata_quirks_init(const struct of_device_id *omap_dt_match_table) { omap_sdrc_init(NULL, NULL); pdata_quirks_check(auxdata_quirks); diff --git a/arch/arm/mach-omap2/prm_common.c b/arch/arm/mach-omap2/prm_common.c index 76ca320f007c..74054b813600 100644 --- a/arch/arm/mach-omap2/prm_common.c +++ b/arch/arm/mach-omap2/prm_common.c @@ -467,7 +467,7 @@ int prm_unregister(struct prm_ll_data *pld) return 0; } -static struct of_device_id omap_prcm_dt_match_table[] = { +static const struct of_device_id omap_prcm_dt_match_table[] = { { .compatible = "ti,am3-prcm" }, { .compatible = "ti,am3-scrm" }, { .compatible = "ti,am4-prcm" }, diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c index 43d03fbf4c0b..4f61148ec168 100644 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c @@ -141,7 +141,7 @@ static struct property device_disabled = { .value = "disabled", }; -static struct of_device_id omap_timer_match[] __initdata = { +static const struct of_device_id omap_timer_match[] __initconst = { { .compatible = "ti,omap2420-timer", }, { .compatible = "ti,omap3430-timer", }, { .compatible = "ti,omap4430-timer", }, @@ -162,7 +162,7 @@ static struct of_device_id omap_timer_match[] __initdata = { * the timer node in device-tree as disabled, to prevent the kernel from * registering this timer as a platform device and so no one else can use it. */ -static struct device_node * __init omap_get_timer_dt(struct of_device_id *match, +static struct device_node * __init omap_get_timer_dt(const struct of_device_id *match, const char *property) { struct device_node *np; @@ -388,7 +388,7 @@ static u64 notrace dmtimer_read_sched_clock(void) return 0; } -static struct of_device_id omap_counter_match[] __initdata = { +static const struct of_device_id omap_counter_match[] __initconst = { { .compatible = "ti,omap-counter32k", }, { } }; -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 1/3] ARM: OMAP2+: make of_device_ids const @ 2014-09-10 8:26 ` Uwe Kleine-König 0 siblings, 0 replies; 28+ messages in thread From: Uwe Kleine-König @ 2014-09-10 8:26 UTC (permalink / raw) To: linux-arm-kernel of_device_ids (i.e. compatible strings and the respective data) are not supposed to change at runtime. All functions working with of_device_ids provided by <linux/of.h> work with const of_device_ids. So mark the non-const function parameters and structs for OMAP2+ as const, too. Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> --- arch/arm/mach-omap2/board-generic.c | 2 +- arch/arm/mach-omap2/common.h | 2 +- arch/arm/mach-omap2/gpmc.c | 2 +- arch/arm/mach-omap2/irq.c | 2 +- arch/arm/mach-omap2/pdata-quirks.c | 2 +- arch/arm/mach-omap2/prm_common.c | 2 +- arch/arm/mach-omap2/timer.c | 6 +++--- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index 9480997ba616..5827abb080e4 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c @@ -27,7 +27,7 @@ #define gic_of_init NULL #endif -static struct of_device_id omap_dt_match_table[] __initdata = { +static const struct of_device_id omap_dt_match_table[] __initconst = { { .compatible = "simple-bus", }, { .compatible = "ti,omap-infra", }, { } diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h index dc571f1d3b8a..79664411e794 100644 --- a/arch/arm/mach-omap2/common.h +++ b/arch/arm/mach-omap2/common.h @@ -307,7 +307,7 @@ static inline void omap4_cpu_resume(void) #endif -void pdata_quirks_init(struct of_device_id *); +void pdata_quirks_init(const struct of_device_id *); void omap_auxdata_legacy_init(struct device *dev); void omap_pcs_legacy_init(int irq, void (*rearm)(void)); diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index 2f97228f188a..a4d52c42a438 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c @@ -1243,7 +1243,7 @@ int gpmc_cs_program_settings(int cs, struct gpmc_settings *p) } #ifdef CONFIG_OF -static struct of_device_id gpmc_dt_ids[] = { +static const struct of_device_id gpmc_dt_ids[] = { { .compatible = "ti,omap2420-gpmc" }, { .compatible = "ti,omap2430-gpmc" }, { .compatible = "ti,omap3430-gpmc" }, /* omap3430 & omap3630 */ diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c index 35b8590c322e..604a976abf14 100644 --- a/arch/arm/mach-omap2/irq.c +++ b/arch/arm/mach-omap2/irq.c @@ -289,7 +289,7 @@ int __init intc_of_init(struct device_node *node, return 0; } -static struct of_device_id irq_match[] __initdata = { +static const struct of_device_id irq_match[] __initconst = { { .compatible = "ti,omap2-intc", .data = intc_of_init, }, { } }; diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c index 90c88d498485..05a8c8b07449 100644 --- a/arch/arm/mach-omap2/pdata-quirks.c +++ b/arch/arm/mach-omap2/pdata-quirks.c @@ -405,7 +405,7 @@ static void pdata_quirks_check(struct pdata_init *quirks) } } -void __init pdata_quirks_init(struct of_device_id *omap_dt_match_table) +void __init pdata_quirks_init(const struct of_device_id *omap_dt_match_table) { omap_sdrc_init(NULL, NULL); pdata_quirks_check(auxdata_quirks); diff --git a/arch/arm/mach-omap2/prm_common.c b/arch/arm/mach-omap2/prm_common.c index 76ca320f007c..74054b813600 100644 --- a/arch/arm/mach-omap2/prm_common.c +++ b/arch/arm/mach-omap2/prm_common.c @@ -467,7 +467,7 @@ int prm_unregister(struct prm_ll_data *pld) return 0; } -static struct of_device_id omap_prcm_dt_match_table[] = { +static const struct of_device_id omap_prcm_dt_match_table[] = { { .compatible = "ti,am3-prcm" }, { .compatible = "ti,am3-scrm" }, { .compatible = "ti,am4-prcm" }, diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c index 43d03fbf4c0b..4f61148ec168 100644 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c @@ -141,7 +141,7 @@ static struct property device_disabled = { .value = "disabled", }; -static struct of_device_id omap_timer_match[] __initdata = { +static const struct of_device_id omap_timer_match[] __initconst = { { .compatible = "ti,omap2420-timer", }, { .compatible = "ti,omap3430-timer", }, { .compatible = "ti,omap4430-timer", }, @@ -162,7 +162,7 @@ static struct of_device_id omap_timer_match[] __initdata = { * the timer node in device-tree as disabled, to prevent the kernel from * registering this timer as a platform device and so no one else can use it. */ -static struct device_node * __init omap_get_timer_dt(struct of_device_id *match, +static struct device_node * __init omap_get_timer_dt(const struct of_device_id *match, const char *property) { struct device_node *np; @@ -388,7 +388,7 @@ static u64 notrace dmtimer_read_sched_clock(void) return 0; } -static struct of_device_id omap_counter_match[] __initdata = { +static const struct of_device_id omap_counter_match[] __initconst = { { .compatible = "ti,omap-counter32k", }, { } }; -- 2.1.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* Re: [PATCH 1/3] ARM: OMAP2+: make of_device_ids const 2014-09-10 8:26 ` Uwe Kleine-König @ 2014-09-11 17:39 ` Tony Lindgren -1 siblings, 0 replies; 28+ messages in thread From: Tony Lindgren @ 2014-09-11 17:39 UTC (permalink / raw) To: Uwe Kleine-König Cc: linux-arm-kernel, Kevin Hilman, Rajendra Nayak, devicetree, Grant Likely, Rob Herring, kernel, linux-omap * Uwe Kleine-König <u.kleine-koenig@pengutronix.de> [140910 01:27]: > of_device_ids (i.e. compatible strings and the respective data) are not > supposed to change at runtime. All functions working with of_device_ids > provided by <linux/of.h> work with const of_device_ids. So mark the > non-const function parameters and structs for OMAP2+ as const, too. Hmm this does not seem to compile with omap2plus_defconfig because of section type conflicts. Looks like there's some issue now with the use of __initconst: arch/arm/mach-omap2/board-generic.c:262:20: error: dra72x_boards_compat causes a section type conflict with omap_dt_match_table arch/arm/mach-omap2/board-generic.c:30:34: note: ‘omap_dt_match_table’ was declared here scripts/Makefile.build:257: recipe for target 'arch/arm/mach-omap2/board-generic.o' failed Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/3] ARM: OMAP2+: make of_device_ids const @ 2014-09-11 17:39 ` Tony Lindgren 0 siblings, 0 replies; 28+ messages in thread From: Tony Lindgren @ 2014-09-11 17:39 UTC (permalink / raw) To: linux-arm-kernel * Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> [140910 01:27]: > of_device_ids (i.e. compatible strings and the respective data) are not > supposed to change at runtime. All functions working with of_device_ids > provided by <linux/of.h> work with const of_device_ids. So mark the > non-const function parameters and structs for OMAP2+ as const, too. Hmm this does not seem to compile with omap2plus_defconfig because of section type conflicts. Looks like there's some issue now with the use of __initconst: arch/arm/mach-omap2/board-generic.c:262:20: error: dra72x_boards_compat causes a section type conflict with omap_dt_match_table arch/arm/mach-omap2/board-generic.c:30:34: note: ?omap_dt_match_table? was declared here scripts/Makefile.build:257: recipe for target 'arch/arm/mach-omap2/board-generic.o' failed Regards, Tony ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [PATCH 1/3] ARM: OMAP2+: make of_device_ids const 2014-09-11 17:39 ` Tony Lindgren @ 2014-09-11 19:01 ` Uwe Kleine-König -1 siblings, 0 replies; 28+ messages in thread From: Uwe Kleine-König @ 2014-09-11 19:01 UTC (permalink / raw) To: Tony Lindgren Cc: devicetree, Kevin Hilman, Rajendra Nayak, Rob Herring, kernel, Grant Likely, linux-omap, linux-arm-kernel On Thu, Sep 11, 2014 at 10:39:43AM -0700, Tony Lindgren wrote: > * Uwe Kleine-König <u.kleine-koenig@pengutronix.de> [140910 01:27]: > > of_device_ids (i.e. compatible strings and the respective data) are not > > supposed to change at runtime. All functions working with of_device_ids > > provided by <linux/of.h> work with const of_device_ids. So mark the > > non-const function parameters and structs for OMAP2+ as const, too. > > Hmm this does not seem to compile with omap2plus_defconfig because > of section type conflicts. Looks like there's some issue now with the > use of __initconst: > > arch/arm/mach-omap2/board-generic.c:262:20: error: dra72x_boards_compat causes a section type conflict with omap_dt_match_table > arch/arm/mach-omap2/board-generic.c:30:34: note: ‘omap_dt_match_table’ was declared here > scripts/Makefile.build:257: recipe for target 'arch/arm/mach-omap2/board-generic.o' failed The problem is dra74x_boards_compat though: static const char *dra74x_boards_compat[] __initconst = { ... *dra74x_boards_compat is const, but dra74x_boards_compat isn't, so either the variable must go into __initdata or it must be declared as: static const char * const dra74x_boards_compat[] __initconst = { ... (but then I guess you get another warning because struct machine_desc's dt_compat is declared as const char **dt_compat; .) With the patch below, arch/arm/mach-omap2/board-generic.c compiles just fine. Don't know yet if the additional const in <asm/mach_desc.h> is problematic ... diff --git a/arch/arc/include/asm/mach_desc.h b/arch/arc/include/asm/mach_desc.h index e8993a2be6c2..f4a7bc8d8967 100644 --- a/arch/arc/include/asm/mach_desc.h +++ b/arch/arc/include/asm/mach_desc.h @@ -35,7 +35,7 @@ */ struct machine_desc { const char *name; - const char **dt_compat; + const char *const *dt_compat; void (*init_early)(void); void (*init_irq)(void); diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index 5827abb080e4..0b311d51425f 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c @@ -43,7 +43,7 @@ static void __init omap_generic_init(void) } #ifdef CONFIG_SOC_OMAP2420 -static const char *omap242x_boards_compat[] __initconst = { +static const char *const omap242x_boards_compat[] __initconst = { "ti,omap2420", NULL, }; @@ -62,7 +62,7 @@ MACHINE_END #endif #ifdef CONFIG_SOC_OMAP2430 -static const char *omap243x_boards_compat[] __initconst = { +static const char *const omap243x_boards_compat[] __initconst = { "ti,omap2430", NULL, }; @@ -81,7 +81,7 @@ MACHINE_END #endif #ifdef CONFIG_ARCH_OMAP3 -static const char *omap3_boards_compat[] __initconst = { +static const char *const omap3_boards_compat[] __initconst = { "ti,omap3430", "ti,omap3", NULL, @@ -100,7 +100,7 @@ DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)") .restart = omap3xxx_restart, MACHINE_END -static const char *omap36xx_boards_compat[] __initconst = { +static const char *const omap36xx_boards_compat[] __initconst = { "ti,omap36xx", NULL, }; @@ -118,7 +118,7 @@ DT_MACHINE_START(OMAP36XX_DT, "Generic OMAP36xx (Flattened Device Tree)") .restart = omap3xxx_restart, MACHINE_END -static const char *omap3_gp_boards_compat[] __initconst = { +static const char *const omap3_gp_boards_compat[] __initconst = { "ti,omap3-beagle", "timll,omap3-devkit8000", NULL, @@ -137,7 +137,7 @@ DT_MACHINE_START(OMAP3_GP_DT, "Generic OMAP3-GP (Flattened Device Tree)") .restart = omap3xxx_restart, MACHINE_END -static const char *am3517_boards_compat[] __initconst = { +static const char *const am3517_boards_compat[] __initconst = { "ti,am3517", NULL, }; @@ -157,7 +157,7 @@ MACHINE_END #endif #ifdef CONFIG_SOC_AM33XX -static const char *am33xx_boards_compat[] __initconst = { +static const char *const am33xx_boards_compat[] __initconst = { "ti,am33xx", NULL, }; @@ -177,7 +177,7 @@ MACHINE_END #endif #ifdef CONFIG_ARCH_OMAP4 -static const char *omap4_boards_compat[] __initconst = { +static const char *const omap4_boards_compat[] __initconst = { "ti,omap4460", "ti,omap4430", "ti,omap4", @@ -199,7 +199,7 @@ MACHINE_END #endif #ifdef CONFIG_SOC_OMAP5 -static const char *omap5_boards_compat[] __initconst = { +static const char *const omap5_boards_compat[] __initconst = { "ti,omap5432", "ti,omap5430", "ti,omap5", @@ -221,7 +221,7 @@ MACHINE_END #endif #ifdef CONFIG_SOC_AM43XX -static const char *am43_boards_compat[] __initconst = { +static const char *const am43_boards_compat[] __initconst = { "ti,am4372", "ti,am43", NULL, @@ -240,7 +240,7 @@ MACHINE_END #endif #ifdef CONFIG_SOC_DRA7XX -static const char *dra74x_boards_compat[] __initconst = { +static const char *const dra74x_boards_compat[] __initconst = { "ti,dra742", "ti,dra7", NULL, @@ -259,7 +259,7 @@ DT_MACHINE_START(DRA74X_DT, "Generic DRA74X (Flattened Device Tree)") .restart = omap44xx_restart, MACHINE_END -static const char *dra72x_boards_compat[] __initconst = { +static const char *const dra72x_boards_compat[] __initconst = { "ti,dra722", NULL, }; Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ | -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 1/3] ARM: OMAP2+: make of_device_ids const @ 2014-09-11 19:01 ` Uwe Kleine-König 0 siblings, 0 replies; 28+ messages in thread From: Uwe Kleine-König @ 2014-09-11 19:01 UTC (permalink / raw) To: linux-arm-kernel On Thu, Sep 11, 2014 at 10:39:43AM -0700, Tony Lindgren wrote: > * Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> [140910 01:27]: > > of_device_ids (i.e. compatible strings and the respective data) are not > > supposed to change at runtime. All functions working with of_device_ids > > provided by <linux/of.h> work with const of_device_ids. So mark the > > non-const function parameters and structs for OMAP2+ as const, too. > > Hmm this does not seem to compile with omap2plus_defconfig because > of section type conflicts. Looks like there's some issue now with the > use of __initconst: > > arch/arm/mach-omap2/board-generic.c:262:20: error: dra72x_boards_compat causes a section type conflict with omap_dt_match_table > arch/arm/mach-omap2/board-generic.c:30:34: note: ?omap_dt_match_table? was declared here > scripts/Makefile.build:257: recipe for target 'arch/arm/mach-omap2/board-generic.o' failed The problem is dra74x_boards_compat though: static const char *dra74x_boards_compat[] __initconst = { ... *dra74x_boards_compat is const, but dra74x_boards_compat isn't, so either the variable must go into __initdata or it must be declared as: static const char * const dra74x_boards_compat[] __initconst = { ... (but then I guess you get another warning because struct machine_desc's dt_compat is declared as const char **dt_compat; .) With the patch below, arch/arm/mach-omap2/board-generic.c compiles just fine. Don't know yet if the additional const in <asm/mach_desc.h> is problematic ... diff --git a/arch/arc/include/asm/mach_desc.h b/arch/arc/include/asm/mach_desc.h index e8993a2be6c2..f4a7bc8d8967 100644 --- a/arch/arc/include/asm/mach_desc.h +++ b/arch/arc/include/asm/mach_desc.h @@ -35,7 +35,7 @@ */ struct machine_desc { const char *name; - const char **dt_compat; + const char *const *dt_compat; void (*init_early)(void); void (*init_irq)(void); diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index 5827abb080e4..0b311d51425f 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c @@ -43,7 +43,7 @@ static void __init omap_generic_init(void) } #ifdef CONFIG_SOC_OMAP2420 -static const char *omap242x_boards_compat[] __initconst = { +static const char *const omap242x_boards_compat[] __initconst = { "ti,omap2420", NULL, }; @@ -62,7 +62,7 @@ MACHINE_END #endif #ifdef CONFIG_SOC_OMAP2430 -static const char *omap243x_boards_compat[] __initconst = { +static const char *const omap243x_boards_compat[] __initconst = { "ti,omap2430", NULL, }; @@ -81,7 +81,7 @@ MACHINE_END #endif #ifdef CONFIG_ARCH_OMAP3 -static const char *omap3_boards_compat[] __initconst = { +static const char *const omap3_boards_compat[] __initconst = { "ti,omap3430", "ti,omap3", NULL, @@ -100,7 +100,7 @@ DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)") .restart = omap3xxx_restart, MACHINE_END -static const char *omap36xx_boards_compat[] __initconst = { +static const char *const omap36xx_boards_compat[] __initconst = { "ti,omap36xx", NULL, }; @@ -118,7 +118,7 @@ DT_MACHINE_START(OMAP36XX_DT, "Generic OMAP36xx (Flattened Device Tree)") .restart = omap3xxx_restart, MACHINE_END -static const char *omap3_gp_boards_compat[] __initconst = { +static const char *const omap3_gp_boards_compat[] __initconst = { "ti,omap3-beagle", "timll,omap3-devkit8000", NULL, @@ -137,7 +137,7 @@ DT_MACHINE_START(OMAP3_GP_DT, "Generic OMAP3-GP (Flattened Device Tree)") .restart = omap3xxx_restart, MACHINE_END -static const char *am3517_boards_compat[] __initconst = { +static const char *const am3517_boards_compat[] __initconst = { "ti,am3517", NULL, }; @@ -157,7 +157,7 @@ MACHINE_END #endif #ifdef CONFIG_SOC_AM33XX -static const char *am33xx_boards_compat[] __initconst = { +static const char *const am33xx_boards_compat[] __initconst = { "ti,am33xx", NULL, }; @@ -177,7 +177,7 @@ MACHINE_END #endif #ifdef CONFIG_ARCH_OMAP4 -static const char *omap4_boards_compat[] __initconst = { +static const char *const omap4_boards_compat[] __initconst = { "ti,omap4460", "ti,omap4430", "ti,omap4", @@ -199,7 +199,7 @@ MACHINE_END #endif #ifdef CONFIG_SOC_OMAP5 -static const char *omap5_boards_compat[] __initconst = { +static const char *const omap5_boards_compat[] __initconst = { "ti,omap5432", "ti,omap5430", "ti,omap5", @@ -221,7 +221,7 @@ MACHINE_END #endif #ifdef CONFIG_SOC_AM43XX -static const char *am43_boards_compat[] __initconst = { +static const char *const am43_boards_compat[] __initconst = { "ti,am4372", "ti,am43", NULL, @@ -240,7 +240,7 @@ MACHINE_END #endif #ifdef CONFIG_SOC_DRA7XX -static const char *dra74x_boards_compat[] __initconst = { +static const char *const dra74x_boards_compat[] __initconst = { "ti,dra742", "ti,dra7", NULL, @@ -259,7 +259,7 @@ DT_MACHINE_START(DRA74X_DT, "Generic DRA74X (Flattened Device Tree)") .restart = omap44xx_restart, MACHINE_END -static const char *dra72x_boards_compat[] __initconst = { +static const char *const dra72x_boards_compat[] __initconst = { "ti,dra722", NULL, }; Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ | ^ permalink raw reply related [flat|nested] 28+ messages in thread
* Re: [PATCH 1/3] ARM: OMAP2+: make of_device_ids const 2014-09-11 19:01 ` Uwe Kleine-König @ 2014-09-11 19:14 ` Tony Lindgren -1 siblings, 0 replies; 28+ messages in thread From: Tony Lindgren @ 2014-09-11 19:14 UTC (permalink / raw) To: Uwe Kleine-König Cc: devicetree, Kevin Hilman, Rajendra Nayak, Rob Herring, kernel, Grant Likely, linux-omap, linux-arm-kernel * Uwe Kleine-König <u.kleine-koenig@pengutronix.de> [140911 12:02]: > On Thu, Sep 11, 2014 at 10:39:43AM -0700, Tony Lindgren wrote: > > * Uwe Kleine-König <u.kleine-koenig@pengutronix.de> [140910 01:27]: > > > of_device_ids (i.e. compatible strings and the respective data) are not > > > supposed to change at runtime. All functions working with of_device_ids > > > provided by <linux/of.h> work with const of_device_ids. So mark the > > > non-const function parameters and structs for OMAP2+ as const, too. > > > > Hmm this does not seem to compile with omap2plus_defconfig because > > of section type conflicts. Looks like there's some issue now with the > > use of __initconst: > > > > arch/arm/mach-omap2/board-generic.c:262:20: error: dra72x_boards_compat causes a section type conflict with omap_dt_match_table > > arch/arm/mach-omap2/board-generic.c:30:34: note: ‘omap_dt_match_table’ was declared here > > scripts/Makefile.build:257: recipe for target 'arch/arm/mach-omap2/board-generic.o' failed > The problem is dra74x_boards_compat though: > > static const char *dra74x_boards_compat[] __initconst = { > ... > > *dra74x_boards_compat is const, but dra74x_boards_compat isn't, so > either the variable must go into __initdata or it must be declared as: > > static const char * const dra74x_boards_compat[] __initconst = { > ... Ah OK. > (but then I guess you get another warning because struct machine_desc's > dt_compat is declared as > > const char **dt_compat; > > .) > > With the patch below, arch/arm/mach-omap2/board-generic.c compiles just > fine. Don't know yet if the additional const in <asm/mach_desc.h> is > problematic ... Yes OK thanks. It Would be nice to have those as __initconst to discard the unused ones. Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/3] ARM: OMAP2+: make of_device_ids const @ 2014-09-11 19:14 ` Tony Lindgren 0 siblings, 0 replies; 28+ messages in thread From: Tony Lindgren @ 2014-09-11 19:14 UTC (permalink / raw) To: linux-arm-kernel * Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> [140911 12:02]: > On Thu, Sep 11, 2014 at 10:39:43AM -0700, Tony Lindgren wrote: > > * Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> [140910 01:27]: > > > of_device_ids (i.e. compatible strings and the respective data) are not > > > supposed to change at runtime. All functions working with of_device_ids > > > provided by <linux/of.h> work with const of_device_ids. So mark the > > > non-const function parameters and structs for OMAP2+ as const, too. > > > > Hmm this does not seem to compile with omap2plus_defconfig because > > of section type conflicts. Looks like there's some issue now with the > > use of __initconst: > > > > arch/arm/mach-omap2/board-generic.c:262:20: error: dra72x_boards_compat causes a section type conflict with omap_dt_match_table > > arch/arm/mach-omap2/board-generic.c:30:34: note: ?omap_dt_match_table? was declared here > > scripts/Makefile.build:257: recipe for target 'arch/arm/mach-omap2/board-generic.o' failed > The problem is dra74x_boards_compat though: > > static const char *dra74x_boards_compat[] __initconst = { > ... > > *dra74x_boards_compat is const, but dra74x_boards_compat isn't, so > either the variable must go into __initdata or it must be declared as: > > static const char * const dra74x_boards_compat[] __initconst = { > ... Ah OK. > (but then I guess you get another warning because struct machine_desc's > dt_compat is declared as > > const char **dt_compat; > > .) > > With the patch below, arch/arm/mach-omap2/board-generic.c compiles just > fine. Don't know yet if the additional const in <asm/mach_desc.h> is > problematic ... Yes OK thanks. It Would be nice to have those as __initconst to discard the unused ones. Regards, Tony ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [PATCH 1/3] ARM: OMAP2+: make of_device_ids const 2014-09-11 19:14 ` Tony Lindgren @ 2014-09-11 19:42 ` Uwe Kleine-König -1 siblings, 0 replies; 28+ messages in thread From: Uwe Kleine-König @ 2014-09-11 19:42 UTC (permalink / raw) To: Tony Lindgren Cc: devicetree, Kevin Hilman, Rajendra Nayak, Rob Herring, kernel, Grant Likely, linux-omap, linux-arm-kernel Hello Tony, On Thu, Sep 11, 2014 at 12:14:50PM -0700, Tony Lindgren wrote: > * Uwe Kleine-König <u.kleine-koenig@pengutronix.de> [140911 12:02]: > > On Thu, Sep 11, 2014 at 10:39:43AM -0700, Tony Lindgren wrote: > > > * Uwe Kleine-König <u.kleine-koenig@pengutronix.de> [140910 01:27]: > > > > of_device_ids (i.e. compatible strings and the respective data) are not > > > > supposed to change at runtime. All functions working with of_device_ids > > > > provided by <linux/of.h> work with const of_device_ids. So mark the > > > > non-const function parameters and structs for OMAP2+ as const, too. > > > > > > Hmm this does not seem to compile with omap2plus_defconfig because > > > of section type conflicts. Looks like there's some issue now with the > > > use of __initconst: > > > > > > arch/arm/mach-omap2/board-generic.c:262:20: error: dra72x_boards_compat causes a section type conflict with omap_dt_match_table > > > arch/arm/mach-omap2/board-generic.c:30:34: note: ‘omap_dt_match_table’ was declared here > > > scripts/Makefile.build:257: recipe for target 'arch/arm/mach-omap2/board-generic.o' failed > > The problem is dra74x_boards_compat though: > > > > static const char *dra74x_boards_compat[] __initconst = { > > ... > > > > *dra74x_boards_compat is const, but dra74x_boards_compat isn't, so > > either the variable must go into __initdata or it must be declared as: > > > > static const char * const dra74x_boards_compat[] __initconst = { > > ... > > Ah OK. > > > (but then I guess you get another warning because struct machine_desc's > > dt_compat is declared as > > > > const char **dt_compat; > > > > .) > > > > With the patch below, arch/arm/mach-omap2/board-generic.c compiles just > > fine. Don't know yet if the additional const in <asm/mach_desc.h> is > > problematic ... > > Yes OK thanks. It Would be nice to have those as __initconst to discard > the unused ones. __initdata is discarded, too, but I already send a patch that adds the additional consts. On top of this one the patch from this thread is fine. Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ | -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/3] ARM: OMAP2+: make of_device_ids const @ 2014-09-11 19:42 ` Uwe Kleine-König 0 siblings, 0 replies; 28+ messages in thread From: Uwe Kleine-König @ 2014-09-11 19:42 UTC (permalink / raw) To: linux-arm-kernel Hello Tony, On Thu, Sep 11, 2014 at 12:14:50PM -0700, Tony Lindgren wrote: > * Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> [140911 12:02]: > > On Thu, Sep 11, 2014 at 10:39:43AM -0700, Tony Lindgren wrote: > > > * Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> [140910 01:27]: > > > > of_device_ids (i.e. compatible strings and the respective data) are not > > > > supposed to change at runtime. All functions working with of_device_ids > > > > provided by <linux/of.h> work with const of_device_ids. So mark the > > > > non-const function parameters and structs for OMAP2+ as const, too. > > > > > > Hmm this does not seem to compile with omap2plus_defconfig because > > > of section type conflicts. Looks like there's some issue now with the > > > use of __initconst: > > > > > > arch/arm/mach-omap2/board-generic.c:262:20: error: dra72x_boards_compat causes a section type conflict with omap_dt_match_table > > > arch/arm/mach-omap2/board-generic.c:30:34: note: ?omap_dt_match_table? was declared here > > > scripts/Makefile.build:257: recipe for target 'arch/arm/mach-omap2/board-generic.o' failed > > The problem is dra74x_boards_compat though: > > > > static const char *dra74x_boards_compat[] __initconst = { > > ... > > > > *dra74x_boards_compat is const, but dra74x_boards_compat isn't, so > > either the variable must go into __initdata or it must be declared as: > > > > static const char * const dra74x_boards_compat[] __initconst = { > > ... > > Ah OK. > > > (but then I guess you get another warning because struct machine_desc's > > dt_compat is declared as > > > > const char **dt_compat; > > > > .) > > > > With the patch below, arch/arm/mach-omap2/board-generic.c compiles just > > fine. Don't know yet if the additional const in <asm/mach_desc.h> is > > problematic ... > > Yes OK thanks. It Would be nice to have those as __initconst to discard > the unused ones. __initdata is discarded, too, but I already send a patch that adds the additional consts. On top of this one the patch from this thread is fine. Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ | ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [PATCH 1/3] ARM: OMAP2+: make of_device_ids const 2014-09-11 19:42 ` Uwe Kleine-König @ 2014-09-11 19:47 ` Tony Lindgren -1 siblings, 0 replies; 28+ messages in thread From: Tony Lindgren @ 2014-09-11 19:47 UTC (permalink / raw) To: Uwe Kleine-König Cc: devicetree, Kevin Hilman, Rajendra Nayak, Rob Herring, kernel, Grant Likely, linux-omap, linux-arm-kernel * Uwe Kleine-König <u.kleine-koenig@pengutronix.de> [140911 12:42]: > Hello Tony, > > On Thu, Sep 11, 2014 at 12:14:50PM -0700, Tony Lindgren wrote: > > * Uwe Kleine-König <u.kleine-koenig@pengutronix.de> [140911 12:02]: > > > On Thu, Sep 11, 2014 at 10:39:43AM -0700, Tony Lindgren wrote: > > > > * Uwe Kleine-König <u.kleine-koenig@pengutronix.de> [140910 01:27]: > > > > > of_device_ids (i.e. compatible strings and the respective data) are not > > > > > supposed to change at runtime. All functions working with of_device_ids > > > > > provided by <linux/of.h> work with const of_device_ids. So mark the > > > > > non-const function parameters and structs for OMAP2+ as const, too. > > > > > > > > Hmm this does not seem to compile with omap2plus_defconfig because > > > > of section type conflicts. Looks like there's some issue now with the > > > > use of __initconst: > > > > > > > > arch/arm/mach-omap2/board-generic.c:262:20: error: dra72x_boards_compat causes a section type conflict with omap_dt_match_table > > > > arch/arm/mach-omap2/board-generic.c:30:34: note: ‘omap_dt_match_table’ was declared here > > > > scripts/Makefile.build:257: recipe for target 'arch/arm/mach-omap2/board-generic.o' failed > > > The problem is dra74x_boards_compat though: > > > > > > static const char *dra74x_boards_compat[] __initconst = { > > > ... > > > > > > *dra74x_boards_compat is const, but dra74x_boards_compat isn't, so > > > either the variable must go into __initdata or it must be declared as: > > > > > > static const char * const dra74x_boards_compat[] __initconst = { > > > ... > > > > Ah OK. > > > > > (but then I guess you get another warning because struct machine_desc's > > > dt_compat is declared as > > > > > > const char **dt_compat; > > > > > > .) > > > > > > With the patch below, arch/arm/mach-omap2/board-generic.c compiles just > > > fine. Don't know yet if the additional const in <asm/mach_desc.h> is > > > problematic ... > > > > Yes OK thanks. It Would be nice to have those as __initconst to discard > > the unused ones. > __initdata is discarded, too, but I already send a patch that adds the > additional consts. On top of this one the patch from this thread is > fine. OK great thanks. I'll apply both into omap-for-v3.18/fixes-not-urgent. Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/3] ARM: OMAP2+: make of_device_ids const @ 2014-09-11 19:47 ` Tony Lindgren 0 siblings, 0 replies; 28+ messages in thread From: Tony Lindgren @ 2014-09-11 19:47 UTC (permalink / raw) To: linux-arm-kernel * Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> [140911 12:42]: > Hello Tony, > > On Thu, Sep 11, 2014 at 12:14:50PM -0700, Tony Lindgren wrote: > > * Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> [140911 12:02]: > > > On Thu, Sep 11, 2014 at 10:39:43AM -0700, Tony Lindgren wrote: > > > > * Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> [140910 01:27]: > > > > > of_device_ids (i.e. compatible strings and the respective data) are not > > > > > supposed to change at runtime. All functions working with of_device_ids > > > > > provided by <linux/of.h> work with const of_device_ids. So mark the > > > > > non-const function parameters and structs for OMAP2+ as const, too. > > > > > > > > Hmm this does not seem to compile with omap2plus_defconfig because > > > > of section type conflicts. Looks like there's some issue now with the > > > > use of __initconst: > > > > > > > > arch/arm/mach-omap2/board-generic.c:262:20: error: dra72x_boards_compat causes a section type conflict with omap_dt_match_table > > > > arch/arm/mach-omap2/board-generic.c:30:34: note: ?omap_dt_match_table? was declared here > > > > scripts/Makefile.build:257: recipe for target 'arch/arm/mach-omap2/board-generic.o' failed > > > The problem is dra74x_boards_compat though: > > > > > > static const char *dra74x_boards_compat[] __initconst = { > > > ... > > > > > > *dra74x_boards_compat is const, but dra74x_boards_compat isn't, so > > > either the variable must go into __initdata or it must be declared as: > > > > > > static const char * const dra74x_boards_compat[] __initconst = { > > > ... > > > > Ah OK. > > > > > (but then I guess you get another warning because struct machine_desc's > > > dt_compat is declared as > > > > > > const char **dt_compat; > > > > > > .) > > > > > > With the patch below, arch/arm/mach-omap2/board-generic.c compiles just > > > fine. Don't know yet if the additional const in <asm/mach_desc.h> is > > > problematic ... > > > > Yes OK thanks. It Would be nice to have those as __initconst to discard > > the unused ones. > __initdata is discarded, too, but I already send a patch that adds the > additional consts. On top of this one the patch from this thread is > fine. OK great thanks. I'll apply both into omap-for-v3.18/fixes-not-urgent. Regards, Tony ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [PATCH 1/3] ARM: OMAP2+: make of_device_ids const 2014-09-11 19:47 ` Tony Lindgren @ 2014-09-11 19:52 ` Uwe Kleine-König -1 siblings, 0 replies; 28+ messages in thread From: Uwe Kleine-König @ 2014-09-11 19:52 UTC (permalink / raw) To: Tony Lindgren Cc: devicetree, Kevin Hilman, Rajendra Nayak, Rob Herring, kernel, Grant Likely, linux-omap, linux-arm-kernel Hello Tony, On Thu, Sep 11, 2014 at 12:47:17PM -0700, Tony Lindgren wrote: > OK great thanks. I'll apply both into omap-for-v3.18/fixes-not-urgent. I would have put "make of_device_ids const" into cleanups, but that's up to you. Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ | -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/3] ARM: OMAP2+: make of_device_ids const @ 2014-09-11 19:52 ` Uwe Kleine-König 0 siblings, 0 replies; 28+ messages in thread From: Uwe Kleine-König @ 2014-09-11 19:52 UTC (permalink / raw) To: linux-arm-kernel Hello Tony, On Thu, Sep 11, 2014 at 12:47:17PM -0700, Tony Lindgren wrote: > OK great thanks. I'll apply both into omap-for-v3.18/fixes-not-urgent. I would have put "make of_device_ids const" into cleanups, but that's up to you. Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ | ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [PATCH 1/3] ARM: OMAP2+: make of_device_ids const 2014-09-11 19:52 ` Uwe Kleine-König @ 2014-09-11 20:10 ` Tony Lindgren -1 siblings, 0 replies; 28+ messages in thread From: Tony Lindgren @ 2014-09-11 20:10 UTC (permalink / raw) To: Uwe Kleine-König Cc: devicetree, Kevin Hilman, Rajendra Nayak, Rob Herring, kernel, Grant Likely, linux-omap, linux-arm-kernel * Uwe Kleine-König <u.kleine-koenig@pengutronix.de> [140911 12:53]: > Hello Tony, > > On Thu, Sep 11, 2014 at 12:47:17PM -0700, Tony Lindgren wrote: > > OK great thanks. I'll apply both into omap-for-v3.18/fixes-not-urgent. > I would have put "make of_device_ids const" into cleanups, but that's up > to you. Yes that would have worked too but already applied and building randconfigs :) Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/3] ARM: OMAP2+: make of_device_ids const @ 2014-09-11 20:10 ` Tony Lindgren 0 siblings, 0 replies; 28+ messages in thread From: Tony Lindgren @ 2014-09-11 20:10 UTC (permalink / raw) To: linux-arm-kernel * Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> [140911 12:53]: > Hello Tony, > > On Thu, Sep 11, 2014 at 12:47:17PM -0700, Tony Lindgren wrote: > > OK great thanks. I'll apply both into omap-for-v3.18/fixes-not-urgent. > I would have put "make of_device_ids const" into cleanups, but that's up > to you. Yes that would have worked too but already applied and building randconfigs :) Tony ^ permalink raw reply [flat|nested] 28+ messages in thread
[parent not found: <20140911190136.GM3755-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>]
* Re: [PATCH 1/3] ARM: OMAP2+: make of_device_ids const 2014-09-11 19:01 ` Uwe Kleine-König @ 2014-09-11 19:14 ` Uwe Kleine-König -1 siblings, 0 replies; 28+ messages in thread From: Uwe Kleine-König @ 2014-09-11 19:14 UTC (permalink / raw) To: Tony Lindgren Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, Kevin Hilman, Rajendra Nayak, Rob Herring, kernel-bIcnvbaLZ9MEGnE8C9+IrQ, Grant Likely, linux-omap-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r Hello, On Thu, Sep 11, 2014 at 09:01:36PM +0200, Uwe Kleine-König wrote: > On Thu, Sep 11, 2014 at 10:39:43AM -0700, Tony Lindgren wrote: > > * Uwe Kleine-König <u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> [140910 01:27]: > > > of_device_ids (i.e. compatible strings and the respective data) are not > > > supposed to change at runtime. All functions working with of_device_ids > > > provided by <linux/of.h> work with const of_device_ids. So mark the > > > non-const function parameters and structs for OMAP2+ as const, too. > > > > Hmm this does not seem to compile with omap2plus_defconfig because > > of section type conflicts. Looks like there's some issue now with the > > use of __initconst: > > > > arch/arm/mach-omap2/board-generic.c:262:20: error: dra72x_boards_compat causes a section type conflict with omap_dt_match_table > > arch/arm/mach-omap2/board-generic.c:30:34: note: ‘omap_dt_match_table’ was declared here > > scripts/Makefile.build:257: recipe for target 'arch/arm/mach-omap2/board-generic.o' failed > The problem is dra74x_boards_compat though: > > static const char *dra74x_boards_compat[] __initconst = { > ... > > *dra74x_boards_compat is const, but dra74x_boards_compat isn't, so > either the variable must go into __initdata or it must be declared as: > > static const char * const dra74x_boards_compat[] __initconst = { > ... > > (but then I guess you get another warning because struct machine_desc's > dt_compat is declared as > > const char **dt_compat; > > .) > > With the patch below, arch/arm/mach-omap2/board-generic.c compiles just > fine. Don't know yet if the additional const in <asm/mach_desc.h> is > problematic ... > > diff --git a/arch/arc/include/asm/mach_desc.h b/arch/arc/include/asm/mach_desc.h > index e8993a2be6c2..f4a7bc8d8967 100644 > --- a/arch/arc/include/asm/mach_desc.h > +++ b/arch/arc/include/asm/mach_desc.h this is obviously non-sense. The definition for arm already has the const I added here for arc. So the patch for board-generic.c below is fine. I will create a proper patch for it. Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ | -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 1/3] ARM: OMAP2+: make of_device_ids const @ 2014-09-11 19:14 ` Uwe Kleine-König 0 siblings, 0 replies; 28+ messages in thread From: Uwe Kleine-König @ 2014-09-11 19:14 UTC (permalink / raw) To: linux-arm-kernel Hello, On Thu, Sep 11, 2014 at 09:01:36PM +0200, Uwe Kleine-K?nig wrote: > On Thu, Sep 11, 2014 at 10:39:43AM -0700, Tony Lindgren wrote: > > * Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> [140910 01:27]: > > > of_device_ids (i.e. compatible strings and the respective data) are not > > > supposed to change at runtime. All functions working with of_device_ids > > > provided by <linux/of.h> work with const of_device_ids. So mark the > > > non-const function parameters and structs for OMAP2+ as const, too. > > > > Hmm this does not seem to compile with omap2plus_defconfig because > > of section type conflicts. Looks like there's some issue now with the > > use of __initconst: > > > > arch/arm/mach-omap2/board-generic.c:262:20: error: dra72x_boards_compat causes a section type conflict with omap_dt_match_table > > arch/arm/mach-omap2/board-generic.c:30:34: note: ?omap_dt_match_table? was declared here > > scripts/Makefile.build:257: recipe for target 'arch/arm/mach-omap2/board-generic.o' failed > The problem is dra74x_boards_compat though: > > static const char *dra74x_boards_compat[] __initconst = { > ... > > *dra74x_boards_compat is const, but dra74x_boards_compat isn't, so > either the variable must go into __initdata or it must be declared as: > > static const char * const dra74x_boards_compat[] __initconst = { > ... > > (but then I guess you get another warning because struct machine_desc's > dt_compat is declared as > > const char **dt_compat; > > .) > > With the patch below, arch/arm/mach-omap2/board-generic.c compiles just > fine. Don't know yet if the additional const in <asm/mach_desc.h> is > problematic ... > > diff --git a/arch/arc/include/asm/mach_desc.h b/arch/arc/include/asm/mach_desc.h > index e8993a2be6c2..f4a7bc8d8967 100644 > --- a/arch/arc/include/asm/mach_desc.h > +++ b/arch/arc/include/asm/mach_desc.h this is obviously non-sense. The definition for arm already has the const I added here for arc. So the patch for board-generic.c below is fine. I will create a proper patch for it. Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ | ^ permalink raw reply [flat|nested] 28+ messages in thread
[parent not found: <1410337579-23466-1-git-send-email-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>]
* [PATCH 2/3] ARM: make of_device_ids const 2014-09-10 8:26 ` Uwe Kleine-König @ 2014-09-10 8:26 ` Uwe Kleine-König -1 siblings, 0 replies; 28+ messages in thread From: Uwe Kleine-König @ 2014-09-10 8:26 UTC (permalink / raw) To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Russell King, Arnd Bergmann, Olof Johansson Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, Grant Likely, Rob Herring, kernel-bIcnvbaLZ9MEGnE8C9+IrQ of_device_ids (i.e. compatible strings and the respective data) are not supposed to change at runtime. All functions working with of_device_ids provided by <linux/of.h> work with const of_device_ids. So mark the non-const structs in arch/arm as const, too. Signed-off-by: Uwe Kleine-König <u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> --- arch/arm/kernel/perf_event_cpu.c | 2 +- arch/arm/mach-at91/at91rm9200_time.c | 2 +- arch/arm/mach-at91/at91sam9263_devices.c | 2 +- arch/arm/mach-at91/at91sam926x_time.c | 2 +- arch/arm/mach-at91/clock.c | 4 ++-- arch/arm/mach-at91/setup.c | 6 +++--- arch/arm/mach-davinci/da8xx-dt.c | 2 +- arch/arm/mach-imx/mmdc.c | 2 +- arch/arm/mach-keystone/pm_domain.c | 2 +- arch/arm/mach-mmp/time.c | 2 +- arch/arm/mach-mvebu/coherency.c | 2 +- arch/arm/mach-mvebu/pmsu.c | 2 +- arch/arm/mach-prima2/platsmp.c | 2 +- arch/arm/mach-sunxi/sunxi.c | 2 +- 14 files changed, 17 insertions(+), 17 deletions(-) diff --git a/arch/arm/kernel/perf_event_cpu.c b/arch/arm/kernel/perf_event_cpu.c index e6a6edbec613..8e13236f184c 100644 --- a/arch/arm/kernel/perf_event_cpu.c +++ b/arch/arm/kernel/perf_event_cpu.c @@ -224,7 +224,7 @@ static struct notifier_block cpu_pmu_hotplug_notifier = { /* * PMU platform driver and devicetree bindings. */ -static struct of_device_id cpu_pmu_of_device_ids[] = { +static const struct of_device_id cpu_pmu_of_device_ids[] = { {.compatible = "arm,cortex-a17-pmu", .data = armv7_a17_pmu_init}, {.compatible = "arm,cortex-a15-pmu", .data = armv7_a15_pmu_init}, {.compatible = "arm,cortex-a12-pmu", .data = armv7_a12_pmu_init}, diff --git a/arch/arm/mach-at91/at91rm9200_time.c b/arch/arm/mach-at91/at91rm9200_time.c index 7fd13aef9827..ec978cc892bf 100644 --- a/arch/arm/mach-at91/at91rm9200_time.c +++ b/arch/arm/mach-at91/at91rm9200_time.c @@ -184,7 +184,7 @@ void __iomem *at91_st_base; EXPORT_SYMBOL_GPL(at91_st_base); #ifdef CONFIG_OF -static struct of_device_id at91rm9200_st_timer_ids[] = { +static const struct of_device_id at91rm9200_st_timer_ids[] = { { .compatible = "atmel,at91rm9200-st" }, { /* sentinel */ } }; diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c index cef0e2f57068..4f717a53aa0e 100644 --- a/arch/arm/mach-at91/at91sam9263_devices.c +++ b/arch/arm/mach-at91/at91sam9263_devices.c @@ -981,7 +981,7 @@ static struct platform_device at91sam9263_tcb_device = { }; #if defined(CONFIG_OF) -static struct of_device_id tcb_ids[] = { +static const struct of_device_id tcb_ids[] = { { .compatible = "atmel,at91rm9200-tcb" }, { /*sentinel*/ } }; diff --git a/arch/arm/mach-at91/at91sam926x_time.c b/arch/arm/mach-at91/at91sam926x_time.c index 0a9e2fc8f796..137c2ca634b0 100644 --- a/arch/arm/mach-at91/at91sam926x_time.c +++ b/arch/arm/mach-at91/at91sam926x_time.c @@ -179,7 +179,7 @@ static struct irqaction at91sam926x_pit_irq = { }; #ifdef CONFIG_OF -static struct of_device_id pit_timer_ids[] = { +static const struct of_device_id pit_timer_ids[] = { { .compatible = "atmel,at91sam9260-pit" }, { /* sentinel */ } }; diff --git a/arch/arm/mach-at91/clock.c b/arch/arm/mach-at91/clock.c index 034529d801b2..b579988dd877 100644 --- a/arch/arm/mach-at91/clock.c +++ b/arch/arm/mach-at91/clock.c @@ -876,7 +876,7 @@ static int __init at91_pmc_init(unsigned long main_clock) } #if defined(CONFIG_OF) -static struct of_device_id pmc_ids[] = { +static const struct of_device_id pmc_ids[] = { { .compatible = "atmel,at91rm9200-pmc" }, { .compatible = "atmel,at91sam9260-pmc" }, { .compatible = "atmel,at91sam9g45-pmc" }, @@ -886,7 +886,7 @@ static struct of_device_id pmc_ids[] = { { /*sentinel*/ } }; -static struct of_device_id osc_ids[] = { +static const struct of_device_id osc_ids[] = { { .compatible = "atmel,osc" }, { /*sentinel*/ } }; diff --git a/arch/arm/mach-at91/setup.c b/arch/arm/mach-at91/setup.c index f7a07a58ebb6..d3ca2b96f0e5 100644 --- a/arch/arm/mach-at91/setup.c +++ b/arch/arm/mach-at91/setup.c @@ -352,7 +352,7 @@ void __init at91_ioremap_matrix(u32 base_addr) } #if defined(CONFIG_OF) && !defined(CONFIG_ARCH_AT91X40) -static struct of_device_id rstc_ids[] = { +static const struct of_device_id rstc_ids[] = { { .compatible = "atmel,at91sam9260-rstc", .data = at91sam9_alt_restart }, { .compatible = "atmel,at91sam9g45-rstc", .data = at91sam9g45_restart }, { /*sentinel*/ } @@ -380,7 +380,7 @@ static void at91_dt_rstc(void) of_node_put(np); } -static struct of_device_id ramc_ids[] = { +static const struct of_device_id ramc_ids[] = { { .compatible = "atmel,at91rm9200-sdramc", .data = at91rm9200_standby }, { .compatible = "atmel,at91sam9260-sdramc", .data = at91sam9_sdram_standby }, { .compatible = "atmel,at91sam9g45-ddramc", .data = at91_ddr_standby }, @@ -411,7 +411,7 @@ static void at91_dt_ramc(void) of_node_put(np); } -static struct of_device_id shdwc_ids[] = { +static const struct of_device_id shdwc_ids[] = { { .compatible = "atmel,at91sam9260-shdwc", }, { .compatible = "atmel,at91sam9rl-shdwc", }, { .compatible = "atmel,at91sam9x5-shdwc", }, diff --git a/arch/arm/mach-davinci/da8xx-dt.c b/arch/arm/mach-davinci/da8xx-dt.c index ed1928740b5f..cd4853a070bd 100644 --- a/arch/arm/mach-davinci/da8xx-dt.c +++ b/arch/arm/mach-davinci/da8xx-dt.c @@ -20,7 +20,7 @@ #define DA8XX_NUM_UARTS 3 -static struct of_device_id da8xx_irq_match[] __initdata = { +static const struct of_device_id da8xx_irq_match[] __initconst = { { .compatible = "ti,cp-intc", .data = cp_intc_of_init, }, { } }; diff --git a/arch/arm/mach-imx/mmdc.c b/arch/arm/mach-imx/mmdc.c index 7a9686ad994c..f3996d45f28e 100644 --- a/arch/arm/mach-imx/mmdc.c +++ b/arch/arm/mach-imx/mmdc.c @@ -51,7 +51,7 @@ static int imx_mmdc_probe(struct platform_device *pdev) return 0; } -static struct of_device_id imx_mmdc_dt_ids[] = { +static const struct of_device_id imx_mmdc_dt_ids[] = { { .compatible = "fsl,imx6q-mmdc", }, { /* sentinel */ } }; diff --git a/arch/arm/mach-keystone/pm_domain.c b/arch/arm/mach-keystone/pm_domain.c index ca79ddac38bc..61c94457279b 100644 --- a/arch/arm/mach-keystone/pm_domain.c +++ b/arch/arm/mach-keystone/pm_domain.c @@ -61,7 +61,7 @@ static struct pm_clk_notifier_block platform_domain_notifier = { .pm_domain = &keystone_pm_domain, }; -static struct of_device_id of_keystone_table[] = { +static const struct of_device_id of_keystone_table[] = { {.compatible = "ti,keystone"}, { /* end of list */ }, }; diff --git a/arch/arm/mach-mmp/time.c b/arch/arm/mach-mmp/time.c index 2756351dbb35..10bfa03e58d4 100644 --- a/arch/arm/mach-mmp/time.c +++ b/arch/arm/mach-mmp/time.c @@ -213,7 +213,7 @@ void __init timer_init(int irq) } #ifdef CONFIG_OF -static struct of_device_id mmp_timer_dt_ids[] = { +static const struct of_device_id mmp_timer_dt_ids[] = { { .compatible = "mrvl,mmp-timer", }, {} }; diff --git a/arch/arm/mach-mvebu/coherency.c b/arch/arm/mach-mvebu/coherency.c index 2bdc3233abe2..67f84cecdfb3 100644 --- a/arch/arm/mach-mvebu/coherency.c +++ b/arch/arm/mach-mvebu/coherency.c @@ -53,7 +53,7 @@ enum { COHERENCY_FABRIC_TYPE_ARMADA_380, }; -static struct of_device_id of_coherency_table[] = { +static const struct of_device_id of_coherency_table[] = { {.compatible = "marvell,coherency-fabric", .data = (void *) COHERENCY_FABRIC_TYPE_ARMADA_370_XP }, {.compatible = "marvell,armada-375-coherency-fabric", diff --git a/arch/arm/mach-mvebu/pmsu.c b/arch/arm/mach-mvebu/pmsu.c index 8a70a51533fd..d35d01531183 100644 --- a/arch/arm/mach-mvebu/pmsu.c +++ b/arch/arm/mach-mvebu/pmsu.c @@ -104,7 +104,7 @@ static void __iomem *pmsu_mp_base; static void *mvebu_cpu_resume; -static struct of_device_id of_pmsu_table[] = { +static const struct of_device_id of_pmsu_table[] = { { .compatible = "marvell,armada-370-pmsu", }, { .compatible = "marvell,armada-370-xp-pmsu", }, { .compatible = "marvell,armada-380-pmsu", }, diff --git a/arch/arm/mach-prima2/platsmp.c b/arch/arm/mach-prima2/platsmp.c index 335c12e92262..59a96daee929 100644 --- a/arch/arm/mach-prima2/platsmp.c +++ b/arch/arm/mach-prima2/platsmp.c @@ -60,7 +60,7 @@ static void sirfsoc_secondary_init(unsigned int cpu) spin_unlock(&boot_lock); } -static struct of_device_id rsc_ids[] = { +static const struct of_device_id rsc_ids[] = { { .compatible = "sirf,marco-rsc" }, {}, }; diff --git a/arch/arm/mach-sunxi/sunxi.c b/arch/arm/mach-sunxi/sunxi.c index 42d4753683ce..efbcbde296b4 100644 --- a/arch/arm/mach-sunxi/sunxi.c +++ b/arch/arm/mach-sunxi/sunxi.c @@ -64,7 +64,7 @@ static void sun4i_restart(enum reboot_mode mode, const char *cmd) } } -static struct of_device_id sunxi_restart_ids[] = { +static const struct of_device_id sunxi_restart_ids[] = { { .compatible = "allwinner,sun4i-a10-wdt" }, { /*sentinel*/ } }; -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 2/3] ARM: make of_device_ids const @ 2014-09-10 8:26 ` Uwe Kleine-König 0 siblings, 0 replies; 28+ messages in thread From: Uwe Kleine-König @ 2014-09-10 8:26 UTC (permalink / raw) To: linux-arm-kernel of_device_ids (i.e. compatible strings and the respective data) are not supposed to change at runtime. All functions working with of_device_ids provided by <linux/of.h> work with const of_device_ids. So mark the non-const structs in arch/arm as const, too. Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> --- arch/arm/kernel/perf_event_cpu.c | 2 +- arch/arm/mach-at91/at91rm9200_time.c | 2 +- arch/arm/mach-at91/at91sam9263_devices.c | 2 +- arch/arm/mach-at91/at91sam926x_time.c | 2 +- arch/arm/mach-at91/clock.c | 4 ++-- arch/arm/mach-at91/setup.c | 6 +++--- arch/arm/mach-davinci/da8xx-dt.c | 2 +- arch/arm/mach-imx/mmdc.c | 2 +- arch/arm/mach-keystone/pm_domain.c | 2 +- arch/arm/mach-mmp/time.c | 2 +- arch/arm/mach-mvebu/coherency.c | 2 +- arch/arm/mach-mvebu/pmsu.c | 2 +- arch/arm/mach-prima2/platsmp.c | 2 +- arch/arm/mach-sunxi/sunxi.c | 2 +- 14 files changed, 17 insertions(+), 17 deletions(-) diff --git a/arch/arm/kernel/perf_event_cpu.c b/arch/arm/kernel/perf_event_cpu.c index e6a6edbec613..8e13236f184c 100644 --- a/arch/arm/kernel/perf_event_cpu.c +++ b/arch/arm/kernel/perf_event_cpu.c @@ -224,7 +224,7 @@ static struct notifier_block cpu_pmu_hotplug_notifier = { /* * PMU platform driver and devicetree bindings. */ -static struct of_device_id cpu_pmu_of_device_ids[] = { +static const struct of_device_id cpu_pmu_of_device_ids[] = { {.compatible = "arm,cortex-a17-pmu", .data = armv7_a17_pmu_init}, {.compatible = "arm,cortex-a15-pmu", .data = armv7_a15_pmu_init}, {.compatible = "arm,cortex-a12-pmu", .data = armv7_a12_pmu_init}, diff --git a/arch/arm/mach-at91/at91rm9200_time.c b/arch/arm/mach-at91/at91rm9200_time.c index 7fd13aef9827..ec978cc892bf 100644 --- a/arch/arm/mach-at91/at91rm9200_time.c +++ b/arch/arm/mach-at91/at91rm9200_time.c @@ -184,7 +184,7 @@ void __iomem *at91_st_base; EXPORT_SYMBOL_GPL(at91_st_base); #ifdef CONFIG_OF -static struct of_device_id at91rm9200_st_timer_ids[] = { +static const struct of_device_id at91rm9200_st_timer_ids[] = { { .compatible = "atmel,at91rm9200-st" }, { /* sentinel */ } }; diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c index cef0e2f57068..4f717a53aa0e 100644 --- a/arch/arm/mach-at91/at91sam9263_devices.c +++ b/arch/arm/mach-at91/at91sam9263_devices.c @@ -981,7 +981,7 @@ static struct platform_device at91sam9263_tcb_device = { }; #if defined(CONFIG_OF) -static struct of_device_id tcb_ids[] = { +static const struct of_device_id tcb_ids[] = { { .compatible = "atmel,at91rm9200-tcb" }, { /*sentinel*/ } }; diff --git a/arch/arm/mach-at91/at91sam926x_time.c b/arch/arm/mach-at91/at91sam926x_time.c index 0a9e2fc8f796..137c2ca634b0 100644 --- a/arch/arm/mach-at91/at91sam926x_time.c +++ b/arch/arm/mach-at91/at91sam926x_time.c @@ -179,7 +179,7 @@ static struct irqaction at91sam926x_pit_irq = { }; #ifdef CONFIG_OF -static struct of_device_id pit_timer_ids[] = { +static const struct of_device_id pit_timer_ids[] = { { .compatible = "atmel,at91sam9260-pit" }, { /* sentinel */ } }; diff --git a/arch/arm/mach-at91/clock.c b/arch/arm/mach-at91/clock.c index 034529d801b2..b579988dd877 100644 --- a/arch/arm/mach-at91/clock.c +++ b/arch/arm/mach-at91/clock.c @@ -876,7 +876,7 @@ static int __init at91_pmc_init(unsigned long main_clock) } #if defined(CONFIG_OF) -static struct of_device_id pmc_ids[] = { +static const struct of_device_id pmc_ids[] = { { .compatible = "atmel,at91rm9200-pmc" }, { .compatible = "atmel,at91sam9260-pmc" }, { .compatible = "atmel,at91sam9g45-pmc" }, @@ -886,7 +886,7 @@ static struct of_device_id pmc_ids[] = { { /*sentinel*/ } }; -static struct of_device_id osc_ids[] = { +static const struct of_device_id osc_ids[] = { { .compatible = "atmel,osc" }, { /*sentinel*/ } }; diff --git a/arch/arm/mach-at91/setup.c b/arch/arm/mach-at91/setup.c index f7a07a58ebb6..d3ca2b96f0e5 100644 --- a/arch/arm/mach-at91/setup.c +++ b/arch/arm/mach-at91/setup.c @@ -352,7 +352,7 @@ void __init at91_ioremap_matrix(u32 base_addr) } #if defined(CONFIG_OF) && !defined(CONFIG_ARCH_AT91X40) -static struct of_device_id rstc_ids[] = { +static const struct of_device_id rstc_ids[] = { { .compatible = "atmel,at91sam9260-rstc", .data = at91sam9_alt_restart }, { .compatible = "atmel,at91sam9g45-rstc", .data = at91sam9g45_restart }, { /*sentinel*/ } @@ -380,7 +380,7 @@ static void at91_dt_rstc(void) of_node_put(np); } -static struct of_device_id ramc_ids[] = { +static const struct of_device_id ramc_ids[] = { { .compatible = "atmel,at91rm9200-sdramc", .data = at91rm9200_standby }, { .compatible = "atmel,at91sam9260-sdramc", .data = at91sam9_sdram_standby }, { .compatible = "atmel,at91sam9g45-ddramc", .data = at91_ddr_standby }, @@ -411,7 +411,7 @@ static void at91_dt_ramc(void) of_node_put(np); } -static struct of_device_id shdwc_ids[] = { +static const struct of_device_id shdwc_ids[] = { { .compatible = "atmel,at91sam9260-shdwc", }, { .compatible = "atmel,at91sam9rl-shdwc", }, { .compatible = "atmel,at91sam9x5-shdwc", }, diff --git a/arch/arm/mach-davinci/da8xx-dt.c b/arch/arm/mach-davinci/da8xx-dt.c index ed1928740b5f..cd4853a070bd 100644 --- a/arch/arm/mach-davinci/da8xx-dt.c +++ b/arch/arm/mach-davinci/da8xx-dt.c @@ -20,7 +20,7 @@ #define DA8XX_NUM_UARTS 3 -static struct of_device_id da8xx_irq_match[] __initdata = { +static const struct of_device_id da8xx_irq_match[] __initconst = { { .compatible = "ti,cp-intc", .data = cp_intc_of_init, }, { } }; diff --git a/arch/arm/mach-imx/mmdc.c b/arch/arm/mach-imx/mmdc.c index 7a9686ad994c..f3996d45f28e 100644 --- a/arch/arm/mach-imx/mmdc.c +++ b/arch/arm/mach-imx/mmdc.c @@ -51,7 +51,7 @@ static int imx_mmdc_probe(struct platform_device *pdev) return 0; } -static struct of_device_id imx_mmdc_dt_ids[] = { +static const struct of_device_id imx_mmdc_dt_ids[] = { { .compatible = "fsl,imx6q-mmdc", }, { /* sentinel */ } }; diff --git a/arch/arm/mach-keystone/pm_domain.c b/arch/arm/mach-keystone/pm_domain.c index ca79ddac38bc..61c94457279b 100644 --- a/arch/arm/mach-keystone/pm_domain.c +++ b/arch/arm/mach-keystone/pm_domain.c @@ -61,7 +61,7 @@ static struct pm_clk_notifier_block platform_domain_notifier = { .pm_domain = &keystone_pm_domain, }; -static struct of_device_id of_keystone_table[] = { +static const struct of_device_id of_keystone_table[] = { {.compatible = "ti,keystone"}, { /* end of list */ }, }; diff --git a/arch/arm/mach-mmp/time.c b/arch/arm/mach-mmp/time.c index 2756351dbb35..10bfa03e58d4 100644 --- a/arch/arm/mach-mmp/time.c +++ b/arch/arm/mach-mmp/time.c @@ -213,7 +213,7 @@ void __init timer_init(int irq) } #ifdef CONFIG_OF -static struct of_device_id mmp_timer_dt_ids[] = { +static const struct of_device_id mmp_timer_dt_ids[] = { { .compatible = "mrvl,mmp-timer", }, {} }; diff --git a/arch/arm/mach-mvebu/coherency.c b/arch/arm/mach-mvebu/coherency.c index 2bdc3233abe2..67f84cecdfb3 100644 --- a/arch/arm/mach-mvebu/coherency.c +++ b/arch/arm/mach-mvebu/coherency.c @@ -53,7 +53,7 @@ enum { COHERENCY_FABRIC_TYPE_ARMADA_380, }; -static struct of_device_id of_coherency_table[] = { +static const struct of_device_id of_coherency_table[] = { {.compatible = "marvell,coherency-fabric", .data = (void *) COHERENCY_FABRIC_TYPE_ARMADA_370_XP }, {.compatible = "marvell,armada-375-coherency-fabric", diff --git a/arch/arm/mach-mvebu/pmsu.c b/arch/arm/mach-mvebu/pmsu.c index 8a70a51533fd..d35d01531183 100644 --- a/arch/arm/mach-mvebu/pmsu.c +++ b/arch/arm/mach-mvebu/pmsu.c @@ -104,7 +104,7 @@ static void __iomem *pmsu_mp_base; static void *mvebu_cpu_resume; -static struct of_device_id of_pmsu_table[] = { +static const struct of_device_id of_pmsu_table[] = { { .compatible = "marvell,armada-370-pmsu", }, { .compatible = "marvell,armada-370-xp-pmsu", }, { .compatible = "marvell,armada-380-pmsu", }, diff --git a/arch/arm/mach-prima2/platsmp.c b/arch/arm/mach-prima2/platsmp.c index 335c12e92262..59a96daee929 100644 --- a/arch/arm/mach-prima2/platsmp.c +++ b/arch/arm/mach-prima2/platsmp.c @@ -60,7 +60,7 @@ static void sirfsoc_secondary_init(unsigned int cpu) spin_unlock(&boot_lock); } -static struct of_device_id rsc_ids[] = { +static const struct of_device_id rsc_ids[] = { { .compatible = "sirf,marco-rsc" }, {}, }; diff --git a/arch/arm/mach-sunxi/sunxi.c b/arch/arm/mach-sunxi/sunxi.c index 42d4753683ce..efbcbde296b4 100644 --- a/arch/arm/mach-sunxi/sunxi.c +++ b/arch/arm/mach-sunxi/sunxi.c @@ -64,7 +64,7 @@ static void sun4i_restart(enum reboot_mode mode, const char *cmd) } } -static struct of_device_id sunxi_restart_ids[] = { +static const struct of_device_id sunxi_restart_ids[] = { { .compatible = "allwinner,sun4i-a10-wdt" }, { /*sentinel*/ } }; -- 2.1.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
[parent not found: <1410337579-23466-3-git-send-email-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>]
* Re: [PATCH 2/3] ARM: make of_device_ids const 2014-09-10 8:26 ` Uwe Kleine-König @ 2014-09-10 15:17 ` Jason Cooper -1 siblings, 0 replies; 28+ messages in thread From: Jason Cooper @ 2014-09-10 15:17 UTC (permalink / raw) To: Uwe Kleine-König Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Russell King, Arnd Bergmann, Olof Johansson, devicetree-u79uwXL29TY76Z2rM5mHXA, Grant Likely, Rob Herring, kernel-bIcnvbaLZ9MEGnE8C9+IrQ Uwe, On Wed, Sep 10, 2014 at 10:26:18AM +0200, Uwe Kleine-König wrote: > of_device_ids (i.e. compatible strings and the respective data) are not > supposed to change at runtime. All functions working with of_device_ids > provided by <linux/of.h> work with const of_device_ids. So mark the > non-const structs in arch/arm as const, too. > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> > --- ... > arch/arm/mach-mvebu/coherency.c | 2 +- > arch/arm/mach-mvebu/pmsu.c | 2 +- For the mvebu stuff, Acked-by: Jason Cooper <jason-E2nrXYax+wsBe96aLqz0jA@public.gmane.org> thx, Jason. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 2/3] ARM: make of_device_ids const @ 2014-09-10 15:17 ` Jason Cooper 0 siblings, 0 replies; 28+ messages in thread From: Jason Cooper @ 2014-09-10 15:17 UTC (permalink / raw) To: linux-arm-kernel Uwe, On Wed, Sep 10, 2014 at 10:26:18AM +0200, Uwe Kleine-K?nig wrote: > of_device_ids (i.e. compatible strings and the respective data) are not > supposed to change at runtime. All functions working with of_device_ids > provided by <linux/of.h> work with const of_device_ids. So mark the > non-const structs in arch/arm as const, too. > > Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> > --- ... > arch/arm/mach-mvebu/coherency.c | 2 +- > arch/arm/mach-mvebu/pmsu.c | 2 +- For the mvebu stuff, Acked-by: Jason Cooper <jason@lakedameon.net> thx, Jason. ^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 3/3] ARM64: make of_device_ids const 2014-09-10 8:26 ` Uwe Kleine-König @ 2014-09-10 8:26 ` Uwe Kleine-König -1 siblings, 0 replies; 28+ messages in thread From: Uwe Kleine-König @ 2014-09-10 8:26 UTC (permalink / raw) To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Catalin Marinas, Will Deacon Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, Grant Likely, Rob Herring, kernel-bIcnvbaLZ9MEGnE8C9+IrQ of_device_ids (i.e. compatible strings and the respective data) are not supposed to change at runtime. All functions working with of_device_ids provided by <linux/of.h> work with const of_device_ids. So mark the only non-const struct in arch/arm64 as const, too. Signed-off-by: Uwe Kleine-König <u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> --- arch/arm64/kernel/perf_event.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/kernel/perf_event.c b/arch/arm64/kernel/perf_event.c index baf5afb7e6a0..aa29ecb4f800 100644 --- a/arch/arm64/kernel/perf_event.c +++ b/arch/arm64/kernel/perf_event.c @@ -1276,7 +1276,7 @@ arch_initcall(cpu_pmu_reset); /* * PMU platform driver and devicetree bindings. */ -static struct of_device_id armpmu_of_device_ids[] = { +static const struct of_device_id armpmu_of_device_ids[] = { {.compatible = "arm,armv8-pmuv3"}, {}, }; -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 3/3] ARM64: make of_device_ids const @ 2014-09-10 8:26 ` Uwe Kleine-König 0 siblings, 0 replies; 28+ messages in thread From: Uwe Kleine-König @ 2014-09-10 8:26 UTC (permalink / raw) To: linux-arm-kernel of_device_ids (i.e. compatible strings and the respective data) are not supposed to change at runtime. All functions working with of_device_ids provided by <linux/of.h> work with const of_device_ids. So mark the only non-const struct in arch/arm64 as const, too. Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> --- arch/arm64/kernel/perf_event.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/kernel/perf_event.c b/arch/arm64/kernel/perf_event.c index baf5afb7e6a0..aa29ecb4f800 100644 --- a/arch/arm64/kernel/perf_event.c +++ b/arch/arm64/kernel/perf_event.c @@ -1276,7 +1276,7 @@ arch_initcall(cpu_pmu_reset); /* * PMU platform driver and devicetree bindings. */ -static struct of_device_id armpmu_of_device_ids[] = { +static const struct of_device_id armpmu_of_device_ids[] = { {.compatible = "arm,armv8-pmuv3"}, {}, }; -- 2.1.0 ^ permalink raw reply related [flat|nested] 28+ messages in thread
[parent not found: <1410337579-23466-4-git-send-email-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>]
* Re: [PATCH 3/3] ARM64: make of_device_ids const 2014-09-10 8:26 ` Uwe Kleine-König @ 2014-09-15 13:11 ` Catalin Marinas -1 siblings, 0 replies; 28+ messages in thread From: Catalin Marinas @ 2014-09-15 13:11 UTC (permalink / raw) To: Uwe Kleine-König Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Will Deacon, devicetree-u79uwXL29TY76Z2rM5mHXA, grant.likely-QSEj5FYQhm4dnm+yROfE0A, Rob Herring, kernel-bIcnvbaLZ9MEGnE8C9+IrQ On Wed, Sep 10, 2014 at 09:26:19AM +0100, Uwe Kleine-König wrote: > of_device_ids (i.e. compatible strings and the respective data) are not > supposed to change at runtime. All functions working with of_device_ids > provided by <linux/of.h> work with const of_device_ids. So mark the > only non-const struct in arch/arm64 as const, too. > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> > --- > arch/arm64/kernel/perf_event.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arm64/kernel/perf_event.c b/arch/arm64/kernel/perf_event.c > index baf5afb7e6a0..aa29ecb4f800 100644 > --- a/arch/arm64/kernel/perf_event.c > +++ b/arch/arm64/kernel/perf_event.c > @@ -1276,7 +1276,7 @@ arch_initcall(cpu_pmu_reset); > /* > * PMU platform driver and devicetree bindings. > */ > -static struct of_device_id armpmu_of_device_ids[] = { > +static const struct of_device_id armpmu_of_device_ids[] = { > {.compatible = "arm,armv8-pmuv3"}, > {}, > }; Acked-by: Catalin Marinas <catalin.marinas-5wv7dgnIgG8@public.gmane.org> (I guess you could upstream the patches via the arm-soc tree) -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 3/3] ARM64: make of_device_ids const @ 2014-09-15 13:11 ` Catalin Marinas 0 siblings, 0 replies; 28+ messages in thread From: Catalin Marinas @ 2014-09-15 13:11 UTC (permalink / raw) To: linux-arm-kernel On Wed, Sep 10, 2014 at 09:26:19AM +0100, Uwe Kleine-K?nig wrote: > of_device_ids (i.e. compatible strings and the respective data) are not > supposed to change at runtime. All functions working with of_device_ids > provided by <linux/of.h> work with const of_device_ids. So mark the > only non-const struct in arch/arm64 as const, too. > > Signed-off-by: Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> > --- > arch/arm64/kernel/perf_event.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arm64/kernel/perf_event.c b/arch/arm64/kernel/perf_event.c > index baf5afb7e6a0..aa29ecb4f800 100644 > --- a/arch/arm64/kernel/perf_event.c > +++ b/arch/arm64/kernel/perf_event.c > @@ -1276,7 +1276,7 @@ arch_initcall(cpu_pmu_reset); > /* > * PMU platform driver and devicetree bindings. > */ > -static struct of_device_id armpmu_of_device_ids[] = { > +static const struct of_device_id armpmu_of_device_ids[] = { > {.compatible = "arm,armv8-pmuv3"}, > {}, > }; Acked-by: Catalin Marinas <catalin.marinas@arm.com> (I guess you could upstream the patches via the arm-soc tree) ^ permalink raw reply [flat|nested] 28+ messages in thread
end of thread, other threads:[~2014-09-15 13:11 UTC | newest] Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2014-09-10 8:26 [PATCH 0/3] ARM+ARM64: constify of_device_ids Uwe Kleine-König 2014-09-10 8:26 ` Uwe Kleine-König 2014-09-10 8:26 ` [PATCH 1/3] ARM: OMAP2+: make of_device_ids const Uwe Kleine-König 2014-09-10 8:26 ` Uwe Kleine-König 2014-09-11 17:39 ` Tony Lindgren 2014-09-11 17:39 ` Tony Lindgren 2014-09-11 19:01 ` Uwe Kleine-König 2014-09-11 19:01 ` Uwe Kleine-König 2014-09-11 19:14 ` Tony Lindgren 2014-09-11 19:14 ` Tony Lindgren 2014-09-11 19:42 ` Uwe Kleine-König 2014-09-11 19:42 ` Uwe Kleine-König 2014-09-11 19:47 ` Tony Lindgren 2014-09-11 19:47 ` Tony Lindgren 2014-09-11 19:52 ` Uwe Kleine-König 2014-09-11 19:52 ` Uwe Kleine-König 2014-09-11 20:10 ` Tony Lindgren 2014-09-11 20:10 ` Tony Lindgren [not found] ` <20140911190136.GM3755-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2014-09-11 19:14 ` Uwe Kleine-König 2014-09-11 19:14 ` Uwe Kleine-König [not found] ` <1410337579-23466-1-git-send-email-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2014-09-10 8:26 ` [PATCH 2/3] ARM: " Uwe Kleine-König 2014-09-10 8:26 ` Uwe Kleine-König [not found] ` <1410337579-23466-3-git-send-email-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2014-09-10 15:17 ` Jason Cooper 2014-09-10 15:17 ` Jason Cooper 2014-09-10 8:26 ` [PATCH 3/3] ARM64: " Uwe Kleine-König 2014-09-10 8:26 ` Uwe Kleine-König [not found] ` <1410337579-23466-4-git-send-email-u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2014-09-15 13:11 ` Catalin Marinas 2014-09-15 13:11 ` Catalin Marinas
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.