You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.5 KiB
50 lines
1.5 KiB
From bd02decd1ad7cc883ce388e769a34a3c402b90c4 Mon Sep 17 00:00:00 2001
|
|
From: Brian Norris <computersforpeace@gmail.com>
|
|
Date: Mon, 16 Nov 2015 10:45:30 -0800
|
|
Subject: [PATCH 080/113] mtd: fsl-quadspi: possible NULL dereference
|
|
|
|
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>
|
|
Acked-by: Han xu <han.xu@freescale.com>
|
|
---
|
|
drivers/mtd/spi-nor/fsl-quadspi.c | 8 ++++----
|
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
|
|
--- 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 platfor
|
|
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 platfor
|
|
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 */
|
|
|