Messages in this thread Patch in this message | | | From | Arnd Bergmann <> | Subject | Re: [PATCH RESEND] of: add const to struct of_device_id.data | Date | Fri, 22 Jun 2012 17:26:22 +0000 |
| |
On Friday 22 June 2012, Uwe Kleine-König wrote: > On Thu, Jun 07, 2012 at 12:20:14PM +0200, Uwe Kleine-König wrote: > > Drivers should never need to modify the data of a device id. So it can > > be const which in turn allows more consts in the driver. > > > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> > > --- > > (Cc += lkml + Grant) > > > > Hello, > > > > this might introduce warnings in drivers that access the data member > > without using const, so this is definitly merge window material if it is > > considered at all. > > ping
Sorry for the delayed response. I think the approach is right, but I am a bit worried about adding warnings for legit code.
A quick test with the defconfigs gave me this error for prima2_defconfig and kzm9g_defconfig:
/home/arnd/linux-arm/arch/arm/mm/cache-l2x0.c: In function 'l2x0_of_init': /home/arnd/linux-arm/arch/arm/mm/cache-l2x0.c:573:7: error: assignment discards 'const' qualifier from pointer target type [-Werror]
and this one with at91sam9263_defconfig: /home/arnd/linux-arm/drivers/misc/atmel_tclib.c: In function 'tc_probe': /home/arnd/linux-arm/drivers/misc/atmel_tclib.c:170:19: error: assignment discards 'const' qualifier from pointer target type [-Werror]
I haven't checked all the defconfigs yet, but I think we should at least make sure they build fine before applying your patch.
Arnd
8<--- diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c index 2a8e380..577baf7 100644 --- a/arch/arm/mm/cache-l2x0.c +++ b/arch/arm/mm/cache-l2x0.c @@ -554,7 +554,7 @@ static const struct of_device_id l2x0_ids[] __initconst = { int __init l2x0_of_init(u32 aux_val, u32 aux_mask) { struct device_node *np; - struct l2x0_of_data *data; + const struct l2x0_of_data *data; struct resource res; np = of_find_matching_node(NULL, l2x0_ids); diff --git a/include/linux/atmel_tc.h b/include/linux/atmel_tc.h index 1d14b1dc..89a931b 100644 --- a/include/linux/atmel_tc.h +++ b/include/linux/atmel_tc.h @@ -63,7 +63,7 @@ struct atmel_tc { struct platform_device *pdev; struct resource *iomem; void __iomem *regs; - struct atmel_tcb_config *tcb_config; + const struct atmel_tcb_config *tcb_config; int irq[3]; struct clk *clk[3]; struct list_head node; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |