mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-08 09:39:40 +00:00
media: smiapp: fix timeout checking in smiapp_read_nvm
[ Upstream commit7a2148dfda
] The current code decrements the timeout counter i and the end of each loop i is incremented, so the check for timeout will always be false and hence the timeout mechanism is just a dead code path. Potentially, if the RD_READY bit is not set, we could end up in an infinite loop. Fix this so the timeout starts from 1000 and decrements to zero, if at the end of the loop i is zero we have a timeout condition. Detected by CoverityScan, CID#1324008 ("Logically dead code") Fixes:ccfc97bdb5
("[media] smiapp: Add driver") Signed-off-by: Colin Ian King <colin.king@canonical.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
41b16e6ec6
commit
0bd08027bd
1 changed files with 5 additions and 6 deletions
|
@ -1001,7 +1001,7 @@ static int smiapp_read_nvm(struct smiapp_sensor *sensor,
|
||||||
if (rval)
|
if (rval)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
for (i = 0; i < 1000; i++) {
|
for (i = 1000; i > 0; i--) {
|
||||||
rval = smiapp_read(
|
rval = smiapp_read(
|
||||||
sensor,
|
sensor,
|
||||||
SMIAPP_REG_U8_DATA_TRANSFER_IF_1_STATUS, &s);
|
SMIAPP_REG_U8_DATA_TRANSFER_IF_1_STATUS, &s);
|
||||||
|
@ -1012,11 +1012,10 @@ static int smiapp_read_nvm(struct smiapp_sensor *sensor,
|
||||||
if (s & SMIAPP_DATA_TRANSFER_IF_1_STATUS_RD_READY)
|
if (s & SMIAPP_DATA_TRANSFER_IF_1_STATUS_RD_READY)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (--i == 0) {
|
}
|
||||||
rval = -ETIMEDOUT;
|
if (!i) {
|
||||||
goto out;
|
rval = -ETIMEDOUT;
|
||||||
}
|
goto out;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < SMIAPP_NVM_PAGE_SIZE; i++) {
|
for (i = 0; i < SMIAPP_NVM_PAGE_SIZE; i++) {
|
||||||
|
|
Loading…
Reference in a new issue