All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mtd: fsl-quadspi: possible NULL reference
@ 2015-11-16 18:42 Brian Norris
  2015-11-16 18:45 ` [PATCH v2] mtd: fsl-quadspi: possible NULL dereference Brian Norris
  2015-11-16 19:46 ` [PATCH] mtd: fsl-quadspi: possible NULL reference kbuild test robot
  0 siblings, 2 replies; 5+ messages in thread
From: Brian Norris @ 2015-11-16 18:42 UTC (permalink / raw)
  To: linux-mtd; +Cc: linux-kernel, Brian Norris, Han Xu

It is theoretically possible to probe this driver without a matching
device tree, so let's guard against this.

Also, use the of_device_get_match_data() helper to make this a bit
simpler.

Coverity complained about this one.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Cc: Han Xu <han.xu@freescale.com>
---
 drivers/mtd/spi-nor/fsl-quadspi.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/mtd/spi-nor/fsl-quadspi.c b/drivers/mtd/spi-nor/fsl-quadspi.c
index cc3a70b9b020..68fe7a2ecd5c 100644
--- a/drivers/mtd/spi-nor/fsl-quadspi.c
+++ b/drivers/mtd/spi-nor/fsl-quadspi.c
@@ -933,8 +933,6 @@ static int fsl_qspi_probe(struct platform_device *pdev)
 	struct spi_nor *nor;
 	struct mtd_info *mtd;
 	int ret, i = 0;
-	const struct of_device_id *of_id =
-			of_match_device(fsl_qspi_dt_ids, &pdev->dev);
 
 	q = devm_kzalloc(dev, sizeof(*q), GFP_KERNEL);
 	if (!q)
@@ -945,7 +943,9 @@ static int fsl_qspi_probe(struct platform_device *pdev)
 		return -ENODEV;
 
 	q->dev = dev;
-	q->devtype_data = (struct fsl_qspi_devtype_data *)of_id->data;
+	q->devtype_data = of_device_get_match_data(dev);
+	if (!q->devtype_data)
+		return -ENODEV;
 	platform_set_drvdata(pdev, q);
 
 	/* find the resources */
-- 
2.6.0.rc2.230.g3dd15c0

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v2] mtd: fsl-quadspi: possible NULL dereference
  2015-11-16 18:42 [PATCH] mtd: fsl-quadspi: possible NULL reference Brian Norris
@ 2015-11-16 18:45 ` Brian Norris
  2015-11-17 21:42   ` Han Xu
  2015-11-18 18:32   ` Brian Norris
  2015-11-16 19:46 ` [PATCH] mtd: fsl-quadspi: possible NULL reference kbuild test robot
  1 sibling, 2 replies; 5+ messages in thread
From: Brian Norris @ 2015-11-16 18:45 UTC (permalink / raw)
  To: linux-mtd; +Cc: Brian Norris, linux-kernel, Han Xu

It is theoretically possible to probe this driver without a matching
device tree, so let's guard against this.

Also, use the of_device_get_match_data() helper to make this a bit
simpler.

Coverity complained about this one.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Cc: Han Xu <han.xu@freescale.com>
---
v2:
 * missed a 'const' warning
 * s/reference/dereference in $subject

 drivers/mtd/spi-nor/fsl-quadspi.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/mtd/spi-nor/fsl-quadspi.c b/drivers/mtd/spi-nor/fsl-quadspi.c
index cc3a70b9b020..916d6dd5b575 100644
--- a/drivers/mtd/spi-nor/fsl-quadspi.c
+++ b/drivers/mtd/spi-nor/fsl-quadspi.c
@@ -269,7 +269,7 @@ struct fsl_qspi {
 	struct clk *clk, *clk_en;
 	struct device *dev;
 	struct completion c;
-	struct fsl_qspi_devtype_data *devtype_data;
+	const struct fsl_qspi_devtype_data *devtype_data;
 	u32 nor_size;
 	u32 nor_num;
 	u32 clk_rate;
@@ -933,8 +933,6 @@ static int fsl_qspi_probe(struct platform_device *pdev)
 	struct spi_nor *nor;
 	struct mtd_info *mtd;
 	int ret, i = 0;
-	const struct of_device_id *of_id =
-			of_match_device(fsl_qspi_dt_ids, &pdev->dev);
 
 	q = devm_kzalloc(dev, sizeof(*q), GFP_KERNEL);
 	if (!q)
@@ -945,7 +943,9 @@ static int fsl_qspi_probe(struct platform_device *pdev)
 		return -ENODEV;
 
 	q->dev = dev;
-	q->devtype_data = (struct fsl_qspi_devtype_data *)of_id->data;
+	q->devtype_data = of_device_get_match_data(dev);
+	if (!q->devtype_data)
+		return -ENODEV;
 	platform_set_drvdata(pdev, q);
 
 	/* find the resources */
-- 
2.6.0.rc2.230.g3dd15c0

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] mtd: fsl-quadspi: possible NULL reference
  2015-11-16 18:42 [PATCH] mtd: fsl-quadspi: possible NULL reference Brian Norris
  2015-11-16 18:45 ` [PATCH v2] mtd: fsl-quadspi: possible NULL dereference Brian Norris
@ 2015-11-16 19:46 ` kbuild test robot
  1 sibling, 0 replies; 5+ messages in thread
From: kbuild test robot @ 2015-11-16 19:46 UTC (permalink / raw)
  To: Brian Norris; +Cc: kbuild-all, linux-mtd, linux-kernel, Brian Norris, Han Xu

[-- Attachment #1: Type: text/plain, Size: 1773 bytes --]

Hi Brian,

[auto build test WARNING on mtd/master]
[also build test WARNING on v4.4-rc1 next-20151116]

url:    https://github.com/0day-ci/linux/commits/Brian-Norris/mtd-fsl-quadspi-possible-NULL-reference/20151117-024430
base:   git://git.infradead.org/linux-mtd.git master
config: i386-allmodconfig (attached as .config)
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All warnings (new ones prefixed by >>):

   drivers/mtd/spi-nor/fsl-quadspi.c: In function 'fsl_qspi_probe':
>> drivers/mtd/spi-nor/fsl-quadspi.c:947:18: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
     q->devtype_data = of_device_get_match_data(dev);
                     ^

vim +/const +947 drivers/mtd/spi-nor/fsl-quadspi.c

   931		struct device *dev = &pdev->dev;
   932		struct fsl_qspi *q;
   933		struct resource *res;
   934		struct spi_nor *nor;
   935		struct mtd_info *mtd;
   936		int ret, i = 0;
   937	
   938		q = devm_kzalloc(dev, sizeof(*q), GFP_KERNEL);
   939		if (!q)
   940			return -ENOMEM;
   941	
   942		q->nor_num = of_get_child_count(dev->of_node);
   943		if (!q->nor_num || q->nor_num > FSL_QSPI_MAX_CHIP)
   944			return -ENODEV;
   945	
   946		q->dev = dev;
 > 947		q->devtype_data = of_device_get_match_data(dev);
   948		if (!q->devtype_data)
   949			return -ENODEV;
   950		platform_set_drvdata(pdev, q);
   951	
   952		/* find the resources */
   953		res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "QuadSPI");
   954		q->iobase = devm_ioremap_resource(dev, res);
   955		if (IS_ERR(q->iobase))

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 51520 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] mtd: fsl-quadspi: possible NULL dereference
  2015-11-16 18:45 ` [PATCH v2] mtd: fsl-quadspi: possible NULL dereference Brian Norris
@ 2015-11-17 21:42   ` Han Xu
  2015-11-18 18:32   ` Brian Norris
  1 sibling, 0 replies; 5+ messages in thread
From: Han Xu @ 2015-11-17 21:42 UTC (permalink / raw)
  To: Brian Norris; +Cc: linux-mtd, linux-kernel

On Mon, Nov 16, 2015 at 10:45:30AM -0800, Brian Norris wrote:
> It is theoretically possible to probe this driver without a matching
> device tree, so let's guard against this.
> 
> Also, use the of_device_get_match_data() helper to make this a bit
> simpler.
> 
> Coverity complained about this one.
> 
> Signed-off-by: Brian Norris <computersforpeace@gmail.com>
> Cc: Han Xu <han.xu@freescale.com>
> ---
> v2:
>  * missed a 'const' warning
>  * s/reference/dereference in $subject
> 
>  drivers/mtd/spi-nor/fsl-quadspi.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/mtd/spi-nor/fsl-quadspi.c b/drivers/mtd/spi-nor/fsl-quadspi.c
> index cc3a70b9b020..916d6dd5b575 100644
> --- a/drivers/mtd/spi-nor/fsl-quadspi.c
> +++ b/drivers/mtd/spi-nor/fsl-quadspi.c
> @@ -269,7 +269,7 @@ struct fsl_qspi {
>  	struct clk *clk, *clk_en;
>  	struct device *dev;
>  	struct completion c;
> -	struct fsl_qspi_devtype_data *devtype_data;
> +	const struct fsl_qspi_devtype_data *devtype_data;
>  	u32 nor_size;
>  	u32 nor_num;
>  	u32 clk_rate;
> @@ -933,8 +933,6 @@ static int fsl_qspi_probe(struct platform_device *pdev)
>  	struct spi_nor *nor;
>  	struct mtd_info *mtd;
>  	int ret, i = 0;
> -	const struct of_device_id *of_id =
> -			of_match_device(fsl_qspi_dt_ids, &pdev->dev);
>  
>  	q = devm_kzalloc(dev, sizeof(*q), GFP_KERNEL);
>  	if (!q)
> @@ -945,7 +943,9 @@ static int fsl_qspi_probe(struct platform_device *pdev)
>  		return -ENODEV;
>  
>  	q->dev = dev;
> -	q->devtype_data = (struct fsl_qspi_devtype_data *)of_id->data;
> +	q->devtype_data = of_device_get_match_data(dev);
> +	if (!q->devtype_data)
> +		return -ENODEV;
>  	platform_set_drvdata(pdev, q);
>  
>  	/* find the resources */
> -- 
> 2.6.0.rc2.230.g3dd15c0
> 
Acked-by: Han xu <han.xu@freescale.com>
-- 
Best Regards,

Han "Allen" Xu

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] mtd: fsl-quadspi: possible NULL dereference
  2015-11-16 18:45 ` [PATCH v2] mtd: fsl-quadspi: possible NULL dereference Brian Norris
  2015-11-17 21:42   ` Han Xu
@ 2015-11-18 18:32   ` Brian Norris
  1 sibling, 0 replies; 5+ messages in thread
From: Brian Norris @ 2015-11-18 18:32 UTC (permalink / raw)
  To: linux-mtd; +Cc: linux-kernel, Han Xu

On Mon, Nov 16, 2015 at 10:45:30AM -0800, Brian Norris wrote:
> It is theoretically possible to probe this driver without a matching
> device tree, so let's guard against this.
> 
> Also, use the of_device_get_match_data() helper to make this a bit
> simpler.
> 
> Coverity complained about this one.
> 
> Signed-off-by: Brian Norris <computersforpeace@gmail.com>
> Cc: Han Xu <han.xu@freescale.com>
> ---
> v2:
>  * missed a 'const' warning
>  * s/reference/dereference in $subject

Pushed to l2-mtd.git

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-11-18 18:33 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-16 18:42 [PATCH] mtd: fsl-quadspi: possible NULL reference Brian Norris
2015-11-16 18:45 ` [PATCH v2] mtd: fsl-quadspi: possible NULL dereference Brian Norris
2015-11-17 21:42   ` Han Xu
2015-11-18 18:32   ` Brian Norris
2015-11-16 19:46 ` [PATCH] mtd: fsl-quadspi: possible NULL reference kbuild test robot

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.