All of lore.kernel.org
 help / color / mirror / Atom feed
* [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

* [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

* [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

* 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

* 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: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

* 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

* 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.