[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <201206221726.22285.arnd@arndb.de>
Date: Fri, 22 Jun 2012 17:26:22 +0000
From: Arnd Bergmann <arnd@...db.de>
To: "Uwe Kleine-König"
<u.kleine-koenig@...gutronix.de>
Cc: devicetree-discuss@...ts.ozlabs.org, linux-kernel@...r.kernel.org,
Grant Likely <grant.likely@...retlab.ca>, kernel@...gutronix.de
Subject: Re: [PATCH RESEND] of: add const to struct of_device_id.data
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@...gutronix.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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists