Patchwork mtd: nand: mxc_nand fix compiler warning

login
register
mail settings
Submitter Alex Gershgorin
Date June 12, 2012, 11:18 a.m.
Message ID <1339499887-17859-1-git-send-email-alexg@meprolight.com>
Download mbox | patch
Permalink /patch/164394/
State New
Headers show

Comments

Alex Gershgorin - June 12, 2012, 11:18 a.m.
This patch removes the following warning:
drivers/mtd/nand/mxc_nand.c:1246: warning: initialization discards qualifiers from pointer target type
drivers/mtd/nand/mxc_nand.c:1249: warning: initialization discards qualifiers from pointer target type
drivers/mtd/nand/mxc_nand.c:1252: warning: initialization discards qualifiers from pointer target type
drivers/mtd/nand/mxc_nand.c:1255: warning: initialization discards qualifiers from pointer target type

Signed-off-by: Alex Gershgorin <alexg@meprolight.com>

Applies to v3.5-rc2+
---
 drivers/mtd/nand/mxc_nand.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
Uwe Kleine-König - June 12, 2012, 12:01 p.m.
Hello,

On Tue, Jun 12, 2012 at 02:18:07PM +0300, Alex Gershgorin wrote:
> This patch removes the following warning:
> drivers/mtd/nand/mxc_nand.c:1246: warning: initialization discards qualifiers from pointer target type
> drivers/mtd/nand/mxc_nand.c:1249: warning: initialization discards qualifiers from pointer target type
> drivers/mtd/nand/mxc_nand.c:1252: warning: initialization discards qualifiers from pointer target type
> drivers/mtd/nand/mxc_nand.c:1255: warning: initialization discards qualifiers from pointer target type
> 
> Signed-off-by: Alex Gershgorin <alexg@meprolight.com>
> 
> Applies to v3.5-rc2+
> ---
Better write the "Applies to" line after the tripple dash. Then this
info doesn't make it into the commit log. Instead point out the
offending commit.

Having said that, I prefer to have

	http://mid.gmane.org/1335171381-24869-1-git-send-email-u.kleine-koenig@pengutronix.de

(and the follow-ups) applied. Casting away consts is nearly always
wrong.

Best regards
Uwe

>  drivers/mtd/nand/mxc_nand.c |    8 ++++----
>  1 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c
> index c58e6a9..74b6e75 100644
> --- a/drivers/mtd/nand/mxc_nand.c
> +++ b/drivers/mtd/nand/mxc_nand.c
> @@ -1243,16 +1243,16 @@ static const struct mxc_nand_devtype_data imx51_nand_devtype_data = {
>  static const struct of_device_id mxcnd_dt_ids[] = {
>  	{
>  		.compatible = "fsl,imx21-nand",
> -		.data = &imx21_nand_devtype_data,
> +		.data = (void *)&imx21_nand_devtype_data,
>  	}, {
>  		.compatible = "fsl,imx27-nand",
> -		.data = &imx27_nand_devtype_data,
> +		.data = (void *)&imx27_nand_devtype_data,
>  	}, {
>  		.compatible = "fsl,imx25-nand",
> -		.data = &imx25_nand_devtype_data,
> +		.data = (void *)&imx25_nand_devtype_data,
>  	}, {
>  		.compatible = "fsl,imx51-nand",
> -		.data = &imx51_nand_devtype_data,
> +		.data = (void *)&imx51_nand_devtype_data,
>  	},
>  	{ /* sentinel */ }
>  };
> -- 
> 1.7.0.4
> 
>
Alex Gershgorin - June 12, 2012, 1:39 p.m.
On Tue, Jun 12, 2012 at 02:18:07PM +0300, Alex Gershgorin wrote:
> This patch removes the following warning:
> drivers/mtd/nand/mxc_nand.c:1246: warning: initialization discards qualifiers from pointer target type
> drivers/mtd/nand/mxc_nand.c:1249: warning: initialization discards qualifiers from pointer target type
> drivers/mtd/nand/mxc_nand.c:1252: warning: initialization discards qualifiers from pointer target type
> drivers/mtd/nand/mxc_nand.c:1255: warning: initialization discards qualifiers from pointer target type
>
> Signed-off-by: Alex Gershgorin <alexg@meprolight.com>
>
> Applies to v3.5-rc2+
> ---
> >Better write the "Applies to" line after the tripple dash. Then this
> >info doesn't make it into the commit log. Instead point out the
> >offending commit.

Sorry my mistake

> >Having said that, I prefer to have

> >  http://mid.gmane.org/1335171381-24869-1-git-send-email-u.kleine-koenig@pengutronix.de
> > (and the follow-ups) applied. Casting away consts is nearly always
> > wrong.

I think this patch will solve the warnings problem only in mxc_nand driver, but this patch also creates
 new same problems to  other drivers that use struct of_device_id.

Thanks
Alex

>  drivers/mtd/nand/mxc_nand.c |    8 ++++----
>  1 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c
> index c58e6a9..74b6e75 100644
> --- a/drivers/mtd/nand/mxc_nand.c
> +++ b/drivers/mtd/nand/mxc_nand.c
> @@ -1243,16 +1243,16 @@ static const struct mxc_nand_devtype_data imx51_nand_devtype_data = {
>  static const struct of_device_id mxcnd_dt_ids[] = {
>       {
>               .compatible = "fsl,imx21-nand",
> -             .data = &imx21_nand_devtype_data,
> +             .data = (void *)&imx21_nand_devtype_data,
>       }, {
>               .compatible = "fsl,imx27-nand",
> -             .data = &imx27_nand_devtype_data,
> +             .data = (void *)&imx27_nand_devtype_data,
>       }, {
>               .compatible = "fsl,imx25-nand",
> -             .data = &imx25_nand_devtype_data,
> +             .data = (void *)&imx25_nand_devtype_data,
>       }, {
>               .compatible = "fsl,imx51-nand",
> -             .data = &imx51_nand_devtype_data,
> +             .data = (void *)&imx51_nand_devtype_data,
>       },
>       { /* sentinel */ }
>  };
> --
> 1.7.0.4
>
>

--
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Uwe Kleine-König - June 12, 2012, 2:24 p.m.
On Tue, Jun 12, 2012 at 04:39:33PM +0300, Alex Gershgorin wrote:
> 
> On Tue, Jun 12, 2012 at 02:18:07PM +0300, Alex Gershgorin wrote:
> > This patch removes the following warning:
> > drivers/mtd/nand/mxc_nand.c:1246: warning: initialization discards qualifiers from pointer target type
> > drivers/mtd/nand/mxc_nand.c:1249: warning: initialization discards qualifiers from pointer target type
> > drivers/mtd/nand/mxc_nand.c:1252: warning: initialization discards qualifiers from pointer target type
> > drivers/mtd/nand/mxc_nand.c:1255: warning: initialization discards qualifiers from pointer target type
> >
> > Signed-off-by: Alex Gershgorin <alexg@meprolight.com>
> >
> > Applies to v3.5-rc2+
> > ---
> > >Better write the "Applies to" line after the tripple dash. Then this
> > >info doesn't make it into the commit log. Instead point out the
> > >offending commit.
> 
> Sorry my mistake
> 
> > >Having said that, I prefer to have
> 
> > >  http://mid.gmane.org/1335171381-24869-1-git-send-email-u.kleine-koenig@pengutronix.de
> > > (and the follow-ups) applied. Casting away consts is nearly always
> > > wrong.
> 
> I think this patch will solve the warnings problem only in mxc_nand driver, but this patch also creates
>  new same problems to  other drivers that use struct of_device_id.
Yeah, but IMHO they are worth to be fixed. With your patch you assume
that the data member will never be modified (and in fact it shouldn't).
So the right thing is to make that assumption offical.
And for well-behaved drivers the fix is easy (i.e. spread a few consts),
and bad drivers are forced to be fixed (or introduce casts for const
that hopefully will be catched during review).

Best regards
Uwe
Alex Gershgorin - June 13, 2012, 7:06 a.m.
Hi Uwe,

> > >Having said that, I prefer to have
>
> > >  http://mid.gmane.org/1335171381-24869-1-git-send-email-u.kleine-koenig@pengutronix.de
> > > (and the follow-ups) applied. Casting away consts is nearly always
> > > wrong.
>
> I think this patch will solve the warnings problem only in mxc_nand driver, but this patch also creates
>  new same problems to  other drivers that use struct of_device_id.
> > > >Yeah, but IMHO they are worth to be fixed. With your patch you assume
> > > > that the data member will never be modified (and in fact it shouldn't).

No my patch only removes a compiler warning of the mxc_nand driver in current version of the kernel.
 
> > > > So the right thing is to make that assumption offical.
> > > > And for well-behaved drivers the fix is easy (i.e. spread a few consts),
> > > > and bad drivers are forced to be fixed (or introduce casts for const
> > > > that hopefully will be catched during review).

Can you imagine how many drivers will require additional patches and what should be the level of fixation?
I do not know
But in general your idea is good, only in my opinion this requires a more in-depth review.

Regards,
Alex

Patch

diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c
index c58e6a9..74b6e75 100644
--- a/drivers/mtd/nand/mxc_nand.c
+++ b/drivers/mtd/nand/mxc_nand.c
@@ -1243,16 +1243,16 @@  static const struct mxc_nand_devtype_data imx51_nand_devtype_data = {
 static const struct of_device_id mxcnd_dt_ids[] = {
 	{
 		.compatible = "fsl,imx21-nand",
-		.data = &imx21_nand_devtype_data,
+		.data = (void *)&imx21_nand_devtype_data,
 	}, {
 		.compatible = "fsl,imx27-nand",
-		.data = &imx27_nand_devtype_data,
+		.data = (void *)&imx27_nand_devtype_data,
 	}, {
 		.compatible = "fsl,imx25-nand",
-		.data = &imx25_nand_devtype_data,
+		.data = (void *)&imx25_nand_devtype_data,
 	}, {
 		.compatible = "fsl,imx51-nand",
-		.data = &imx51_nand_devtype_data,
+		.data = (void *)&imx51_nand_devtype_data,
 	},
 	{ /* sentinel */ }
 };