Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1463526 > unrolled thread

[PATCH 1/2] mfd: mc13xxx: constify mc13xxx_variant

Started byLABBE Corentin <clabbe.montjoie@gmail.com>
First post2016-08-16 10:20 +0200
Last post2016-08-16 10:20 +0200
Articles 2 — 1 participant

Back to article view | Back to linux.kernel


Contents

  [PATCH 1/2] mfd: mc13xxx: constify mc13xxx_variant LABBE Corentin <clabbe.montjoie@gmail.com> - 2016-08-16 10:20 +0200
    [PATCH 2/2] mfd: mc13xxx: fix a possible NULL dereference LABBE Corentin <clabbe.montjoie@gmail.com> - 2016-08-16 10:20 +0200

#1463526 — [PATCH 1/2] mfd: mc13xxx: constify mc13xxx_variant

FromLABBE Corentin <clabbe.montjoie@gmail.com>
Date2016-08-16 10:20 +0200
Subject[PATCH 1/2] mfd: mc13xxx: constify mc13xxx_variant
Message-ID<s6HLk-BJ-15@gated-at.bofh.it>
The mc13xxx_variant structure is never modified, this patch set it as
const.

Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com>
---
 drivers/mfd/mc13xxx-core.c | 6 +++---
 drivers/mfd/mc13xxx-i2c.c  | 2 +-
 drivers/mfd/mc13xxx-spi.c  | 2 +-
 drivers/mfd/mc13xxx.h      | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/mfd/mc13xxx-core.c b/drivers/mfd/mc13xxx-core.c
index d7f54e4..3a008e6 100644
--- a/drivers/mfd/mc13xxx-core.c
+++ b/drivers/mfd/mc13xxx-core.c
@@ -202,19 +202,19 @@ static void mc34708_print_revision(struct mc13xxx *mc13xxx, u32 revision)
 }
 
 /* These are only exported for mc13xxx-i2c and mc13xxx-spi */
-struct mc13xxx_variant mc13xxx_variant_mc13783 = {
+const struct mc13xxx_variant mc13xxx_variant_mc13783 = {
 	.name = "mc13783",
 	.print_revision = mc13xxx_print_revision,
 };
 EXPORT_SYMBOL_GPL(mc13xxx_variant_mc13783);
 
-struct mc13xxx_variant mc13xxx_variant_mc13892 = {
+const struct mc13xxx_variant mc13xxx_variant_mc13892 = {
 	.name = "mc13892",
 	.print_revision = mc13xxx_print_revision,
 };
 EXPORT_SYMBOL_GPL(mc13xxx_variant_mc13892);
 
-struct mc13xxx_variant mc13xxx_variant_mc34708 = {
+const struct mc13xxx_variant mc13xxx_variant_mc34708 = {
 	.name = "mc34708",
 	.print_revision = mc34708_print_revision,
 };
diff --git a/drivers/mfd/mc13xxx-i2c.c b/drivers/mfd/mc13xxx-i2c.c
index 67e4c9a..3c00ccb 100644
--- a/drivers/mfd/mc13xxx-i2c.c
+++ b/drivers/mfd/mc13xxx-i2c.c
@@ -82,7 +82,7 @@ static int mc13xxx_i2c_probe(struct i2c_client *client,
 			of_match_device(mc13xxx_dt_ids, &client->dev);
 		mc13xxx->variant = of_id->data;
 	} else {
-		mc13xxx->variant = (void *)id->driver_data;
+		mc13xxx->variant = (const struct mc13xxx_variant *)id->driver_data;
 	}
 
 	return mc13xxx_common_init(&client->dev);
diff --git a/drivers/mfd/mc13xxx-spi.c b/drivers/mfd/mc13xxx-spi.c
index cbc1e5e..6100025 100644
--- a/drivers/mfd/mc13xxx-spi.c
+++ b/drivers/mfd/mc13xxx-spi.c
@@ -162,7 +162,7 @@ static int mc13xxx_spi_probe(struct spi_device *spi)
 	} else {
 		const struct spi_device_id *id_entry = spi_get_device_id(spi);
 
-		mc13xxx->variant = (void *)id_entry->driver_data;
+		mc13xxx->variant = (const struct mc13xxx_variant *)id_entry->driver_data;
 	}
 
 	return mc13xxx_common_init(&spi->dev);
diff --git a/drivers/mfd/mc13xxx.h b/drivers/mfd/mc13xxx.h
index 33677d1..6d7fce5 100644
--- a/drivers/mfd/mc13xxx.h
+++ b/drivers/mfd/mc13xxx.h
@@ -24,7 +24,7 @@ struct mc13xxx_variant {
 	void (*print_revision)(struct mc13xxx *mc13xxx, u32 revision);
 };
 
-extern struct mc13xxx_variant
+extern const struct mc13xxx_variant
 		mc13xxx_variant_mc13783,
 		mc13xxx_variant_mc13892,
 		mc13xxx_variant_mc34708;
-- 
2.7.3

[toc] | [next] | [standalone]


#1463529 — [PATCH 2/2] mfd: mc13xxx: fix a possible NULL dereference

FromLABBE Corentin <clabbe.montjoie@gmail.com>
Date2016-08-16 10:20 +0200
Subject[PATCH 2/2] mfd: mc13xxx: fix a possible NULL dereference
Message-ID<s6HLk-BJ-25@gated-at.bofh.it>
In reply to#1463526
of_match_device could return NULL, and so cause a NULL pointer
dereference later.
For fixing this problem, we use of_device_get_match_data(), this will
simplify the code a little by using a standard function for
getting the match data.

Reported-by: coverity (CID 986513)
Reported-by: coverity (CID 986514)
Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com>
---
 drivers/mfd/mc13xxx-i2c.c | 4 +---
 drivers/mfd/mc13xxx-spi.c | 5 +----
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/mfd/mc13xxx-i2c.c b/drivers/mfd/mc13xxx-i2c.c
index 3c00ccb..8ad7593 100644
--- a/drivers/mfd/mc13xxx-i2c.c
+++ b/drivers/mfd/mc13xxx-i2c.c
@@ -78,9 +78,7 @@ static int mc13xxx_i2c_probe(struct i2c_client *client,
 	}
 
 	if (client->dev.of_node) {
-		const struct of_device_id *of_id =
-			of_match_device(mc13xxx_dt_ids, &client->dev);
-		mc13xxx->variant = of_id->data;
+		mc13xxx->variant = of_device_get_match_data(&client->dev);
 	} else {
 		mc13xxx->variant = (const struct mc13xxx_variant *)id->driver_data;
 	}
diff --git a/drivers/mfd/mc13xxx-spi.c b/drivers/mfd/mc13xxx-spi.c
index 6100025..3b4f5ba 100644
--- a/drivers/mfd/mc13xxx-spi.c
+++ b/drivers/mfd/mc13xxx-spi.c
@@ -155,10 +155,7 @@ static int mc13xxx_spi_probe(struct spi_device *spi)
 	}
 
 	if (spi->dev.of_node) {
-		const struct of_device_id *of_id =
-			of_match_device(mc13xxx_dt_ids, &spi->dev);
-
-		mc13xxx->variant = of_id->data;
+		mc13xxx->variant = of_device_get_match_data(&spi->dev);
 	} else {
 		const struct spi_device_id *id_entry = spi_get_device_id(spi);
 
-- 
2.7.3

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web