Patchwork mxc-nand: no need to check for validity of platform drive data

login
register
mail settings
Submitter Uwe Kleine-König
Date Jan. 11, 2010, 2:05 p.m.
Message ID <1263218735-17244-1-git-send-email-u.kleine-koenig@pengutronix.de>
Download mbox | patch
Permalink /patch/42621/
State Accepted
Commit b840bc11b5062803c204d8a9625a1a1c5812d6d6
Headers show

Comments

Uwe Kleine-König - Jan. 11, 2010, 2:05 p.m.
The probe function calls platform_set_drvdata with a valid pointer when
the probe is successful.  As mxcnd_suspend and mxcnd_resume are only
called on bound devices, platform_get_drvdata always returns non-NULL.

This fix isn't critical as the pointer is always valid so it doesn't
matter if the compiler generated code for it or not.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reported-by: David Binderman <dcb314@hotmail.com>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Cc: Vladimir Barinov <vova.barinov@gmail.com>
---
 drivers/mtd/nand/mxc_nand.c |   17 +++++++----------
 1 files changed, 7 insertions(+), 10 deletions(-)
Sascha Hauer - Jan. 11, 2010, 6 p.m.
On Mon, Jan 11, 2010 at 03:05:35PM +0100, Uwe Kleine-König wrote:
> The probe function calls platform_set_drvdata with a valid pointer when
> the probe is successful.  As mxcnd_suspend and mxcnd_resume are only
> called on bound devices, platform_get_drvdata always returns non-NULL.
> 
> This fix isn't critical as the pointer is always valid so it doesn't
> matter if the compiler generated code for it or not.
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> Reported-by: David Binderman <dcb314@hotmail.com>
> Cc: David Woodhouse <dwmw2@infradead.org>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
> Cc: Vladimir Barinov <vova.barinov@gmail.com>

Acked-by: Sascha Hauer <s.hauer@pengutronix.de>

> ---
>  drivers/mtd/nand/mxc_nand.c |   17 +++++++----------
>  1 files changed, 7 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c
> index 45dec57..84f3635 100644
> --- a/drivers/mtd/nand/mxc_nand.c
> +++ b/drivers/mtd/nand/mxc_nand.c
> @@ -886,11 +886,10 @@ static int mxcnd_suspend(struct platform_device *pdev, pm_message_t state)
>  	int ret = 0;
>  
>  	DEBUG(MTD_DEBUG_LEVEL0, "MXC_ND : NAND suspend\n");
> -	if (mtd) {
> -		ret = mtd->suspend(mtd);
> -		/* Disable the NFC clock */
> -		clk_disable(host->clk);
> -	}
> +
> +	ret = mtd->suspend(mtd);
> +	/* Disable the NFC clock */
> +	clk_disable(host->clk);
>  
>  	return ret;
>  }
> @@ -904,11 +903,9 @@ static int mxcnd_resume(struct platform_device *pdev)
>  
>  	DEBUG(MTD_DEBUG_LEVEL0, "MXC_ND : NAND resume\n");
>  
> -	if (mtd) {
> -		/* Enable the NFC clock */
> -		clk_enable(host->clk);
> -		mtd->resume(mtd);
> -	}
> +	/* Enable the NFC clock */
> +	clk_enable(host->clk);
> +	mtd->resume(mtd);
>  
>  	return ret;
>  }
> -- 
> 1.6.5.2
> 
>
Artem Bityutskiy - Jan. 17, 2010, 8:25 a.m.
On Mon, 2010-01-11 at 15:05 +0100, Uwe Kleine-König wrote:
> The probe function calls platform_set_drvdata with a valid pointer when
> the probe is successful.  As mxcnd_suspend and mxcnd_resume are only
> called on bound devices, platform_get_drvdata always returns non-NULL.
> 
> This fix isn't critical as the pointer is always valid so it doesn't
> matter if the compiler generated code for it or not.

I've put these patches to my l2-mtd-2.6.git/master
Uwe Kleine-König - Feb. 5, 2010, 1:47 p.m.
Hello Artem,

On Sun, Jan 17, 2010 at 10:25:54AM +0200, Artem Bityutskiy wrote:
> On Mon, 2010-01-11 at 15:05 +0100, Uwe Kleine-König wrote:
> > The probe function calls platform_set_drvdata with a valid pointer when
> > the probe is successful.  As mxcnd_suspend and mxcnd_resume are only
> > called on bound devices, platform_get_drvdata always returns non-NULL.
> > 
> > This fix isn't critical as the pointer is always valid so it doesn't
> > matter if the compiler generated code for it or not.
> 
> I've put these patches to my l2-mtd-2.6.git/master
Up to now this patch didn't hit next.  Maybe you want to ask Steven
Rothwell to merge your tree, too?

Best regards
Uwe
Artem Bityutskiy - Feb. 5, 2010, 1:55 p.m.
Hi,

On Fri, 2010-02-05 at 14:47 +0100, ext Uwe Kleine-König wrote:
> Hello Artem,
> 
> On Sun, Jan 17, 2010 at 10:25:54AM +0200, Artem Bityutskiy wrote:
> > On Mon, 2010-01-11 at 15:05 +0100, Uwe Kleine-König wrote:
> > > The probe function calls platform_set_drvdata with a valid pointer when
> > > the probe is successful.  As mxcnd_suspend and mxcnd_resume are only
> > > called on bound devices, platform_get_drvdata always returns non-NULL.
> > > 
> > > This fix isn't critical as the pointer is always valid so it doesn't
> > > matter if the compiler generated code for it or not.
> > 
> > I've put these patches to my l2-mtd-2.6.git/master
> Up to now this patch didn't hit next.  Maybe you want to ask Steven
> Rothwell to merge your tree, too?

This is up to dwmw2, who is the MTD maintainer. All I do is I am helping
dwmw2 by providing him a git tree with all MTD patches from the mailing
list. So he does not have to go through whole mailing list. I put stuff
I reviewed to "master", and stuff I did/could not review to "dunno"

Hence, my tree is "level 2".

To get into the "next" tree, you should contact dwmw2.

Patch

diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c
index 45dec57..84f3635 100644
--- a/drivers/mtd/nand/mxc_nand.c
+++ b/drivers/mtd/nand/mxc_nand.c
@@ -886,11 +886,10 @@  static int mxcnd_suspend(struct platform_device *pdev, pm_message_t state)
 	int ret = 0;
 
 	DEBUG(MTD_DEBUG_LEVEL0, "MXC_ND : NAND suspend\n");
-	if (mtd) {
-		ret = mtd->suspend(mtd);
-		/* Disable the NFC clock */
-		clk_disable(host->clk);
-	}
+
+	ret = mtd->suspend(mtd);
+	/* Disable the NFC clock */
+	clk_disable(host->clk);
 
 	return ret;
 }
@@ -904,11 +903,9 @@  static int mxcnd_resume(struct platform_device *pdev)
 
 	DEBUG(MTD_DEBUG_LEVEL0, "MXC_ND : NAND resume\n");
 
-	if (mtd) {
-		/* Enable the NFC clock */
-		clk_enable(host->clk);
-		mtd->resume(mtd);
-	}
+	/* Enable the NFC clock */
+	clk_enable(host->clk);
+	mtd->resume(mtd);
 
 	return ret;
 }