summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Georgi <pgeorgi@google.com>2019-08-27 15:48:12 +0200
committerCommit Bot <commit-bot@chromium.org>2019-08-28 08:45:07 +0000
commitcd2de3fc71ecfe098a9bf11f9832f1644cfcb324 (patch)
treef7c2f3132e21c08603525a05395ee7ef93e2a663
parent0441f941ab17f0c20d97e5d739c88312dd17c6a2 (diff)
downloadchrome-ec-cd2de3fc71ecfe098a9bf11f9832f1644cfcb324.tar.gz
mchp/espi: fix error condition handling
As uint tidx can't be < 0 which can lead to overflow further down. (Found by Coverity Scan) BUG=none BRANCH=none TEST=none Change-Id: I63988be98a64292362cdc017beceac296ddde0dc Signed-off-by: Patrick Georgi <pgeorgi@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1768650 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Tested-by: Patrick Georgi <pgeorgi@chromium.org> Commit-Queue: Patrick Georgi <pgeorgi@chromium.org>
-rw-r--r--chip/mchp/espi.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/chip/mchp/espi.c b/chip/mchp/espi.c
index 6622dd15c5..e7459ae25c 100644
--- a/chip/mchp/espi.c
+++ b/chip/mchp/espi.c
@@ -595,7 +595,8 @@ void espi_vw_power_signal_interrupt(enum espi_vw_signal signal)
*/
int espi_vw_set_wire(enum espi_vw_signal signal, uint8_t level)
{
- uint8_t tidx, ridx, src_num;
+ int tidx;
+ uint8_t ridx, src_num;
tidx = espi_vw_get_signal_index(signal);
@@ -671,8 +672,8 @@ static int espi_vw_s2m_set_w4m(uint32_t ridx, uint32_t src_num,
*/
int espi_vw_pulse_wire(enum espi_vw_signal signal, int pulse_level)
{
- int rc;
- uint8_t tidx, ridx, src_num, level;
+ int rc, tidx;
+ uint8_t ridx, src_num, level;
tidx = espi_vw_get_signal_index(signal);
@@ -720,8 +721,8 @@ int espi_vw_pulse_wire(enum espi_vw_signal signal, int pulse_level)
*/
int espi_vw_get_wire(enum espi_vw_signal signal)
{
- int vw;
- uint8_t tidx, ridx, src_num;
+ int vw, tidx;
+ uint8_t ridx, src_num;
vw = 0;
tidx = espi_vw_get_signal_index(signal);
@@ -749,7 +750,8 @@ int espi_vw_get_wire(enum espi_vw_signal signal)
*/
int espi_vw_enable_wire_int(enum espi_vw_signal signal)
{
- uint8_t tidx, ridx, src_num, girq_num, bpos;
+ int tidx;
+ uint8_t ridx, src_num, girq_num, bpos;
tidx = espi_vw_get_signal_index(signal);
@@ -799,7 +801,8 @@ int espi_vw_enable_wire_int(enum espi_vw_signal signal)
*/
int espi_vw_disable_wire_int(enum espi_vw_signal signal)
{
- uint8_t tidx, ridx, src_num, bpos;
+ int tidx;
+ uint8_t ridx, src_num, bpos;
tidx = espi_vw_get_signal_index(signal);