diff options
author | Jacob Rampertab <jrampertab@nvidia.com> | 2017-06-08 17:51:14 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-06-14 02:53:31 -0400 |
commit | 02bde3c845ed59799a88c1335f9d9464751185e6 (patch) | |
tree | 0c7ed758080425d4b3a2cd407a87ee44586b6f2d /drivers/media/i2c/lc898212.c | |
parent | c23f07aa824c4b0ff43600b4e557d1340feb60f8 (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.c | 8 |
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); |