summaryrefslogtreecommitdiffstats
path: root/drivers/media/i2c/lc898212.c
diff options
context:
space:
mode:
authorJacob Rampertab <jrampertab@nvidia.com>2017-06-08 17:51:14 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-06-14 02:53:31 -0400
commit02bde3c845ed59799a88c1335f9d9464751185e6 (patch)
tree0c7ed758080425d4b3a2cd407a87ee44586b6f2d /drivers/media/i2c/lc898212.c
parentc23f07aa824c4b0ff43600b4e557d1340feb60f8 (diff)
kernel: i2c: Fix address variable size
Variable being used as address was incorrect size for access, causing stack out of bounds errors. u32 resolves issue. Bug 200300101 Change-Id: Icb6ebcbeea3e49ec725ceb0253a165c615c2a879 Signed-off-by: Jacob Rampertab <jrampertab@nvidia.com> Reviewed-on: http://git-master/r/1498770 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Diffstat (limited to 'drivers/media/i2c/lc898212.c')
-rw-r--r--drivers/media/i2c/lc898212.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/media/i2c/lc898212.c b/drivers/media/i2c/lc898212.c
index d309e71d0..b88924532 100644
--- a/drivers/media/i2c/lc898212.c
+++ b/drivers/media/i2c/lc898212.c
@@ -281,11 +281,10 @@ static int lc898212_write_table(struct lc898212 *priv,
281 val = next->val; 281 val = next->val;
282 282
283 if (next->addr == LC898212_WAIT_REPEAT) { 283 if (next->addr == LC898212_WAIT_REPEAT) {
284 u8 data = 0; 284 u32 data = 0;
285 u8 count = 0; 285 u8 count = 0;
286 286
287 err = regmap_read(priv->regmap8, val, 287 err = regmap_read(priv->regmap8, val, &data);
288 (unsigned int *) &data);
289 if (err) { 288 if (err) {
290 pr_err("%s: regmap_read: %d\n", __func__, err); 289 pr_err("%s: regmap_read: %d\n", __func__, err);
291 return err; 290 return err;
@@ -297,8 +296,7 @@ static int lc898212_write_table(struct lc898212 *priv,
297 } 296 }
298 297
299 usleep_range(10, 20); 298 usleep_range(10, 20);
300 err = regmap_read(priv->regmap8, val, 299 err = regmap_read(priv->regmap8, val, &data);
301 (unsigned int *) &data);
302 if (err) { 300 if (err) {
303 pr_err("%s: regmap_read: %d\n", 301 pr_err("%s: regmap_read: %d\n",
304 __func__, err); 302 __func__, err);