intel/apollolake: Fix check for return value of pmc_gpe_route_to_gpio

pmc_gpe_route_to_gpio returns -1 on error. However, the value was being
stored in unsigned int and compared against -1. Fix this by using local
variable ret.

Change-Id: I5ec824949d4ee0fbdbb2ffdc9fc9d4762455b27b
Reported-by: Coverity ID 1357443, 1357442, 1357441
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://review.coreboot.org/16218
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Furquan Shaikh 2016-08-14 21:50:50 -07:00
parent 91f6e679cc
commit e7de6fb162
1 changed files with 12 additions and 6 deletions

View File

@ -361,6 +361,7 @@ void gpio_route_gpe(uint8_t gpe0b, uint8_t gpe0c, uint8_t gpe0d)
uint32_t misccfg_mask; uint32_t misccfg_mask;
uint32_t misccfg_value; uint32_t misccfg_value;
uint32_t value; uint32_t value;
int ret;
/* Get the group here for community specific MISCCFG register. /* Get the group here for community specific MISCCFG register.
* If any of these returns -1 then there is some error in devicetree * If any of these returns -1 then there is some error in devicetree
@ -368,15 +369,20 @@ void gpio_route_gpe(uint8_t gpe0b, uint8_t gpe0c, uint8_t gpe0d)
* PMC group defines. So we return from here and MISCFG is set to * PMC group defines. So we return from here and MISCFG is set to
* default. * default.
*/ */
gpe0b = pmc_gpe_route_to_gpio(gpe0b); ret = pmc_gpe_route_to_gpio(gpe0b);
if(gpe0b == -1) if (ret == -1)
return; return;
gpe0c = pmc_gpe_route_to_gpio(gpe0c); gpe0b = ret;
if(gpe0c == -1)
ret = pmc_gpe_route_to_gpio(gpe0c);
if (ret == -1)
return; return;
gpe0d = pmc_gpe_route_to_gpio(gpe0d); gpe0c = ret;
if(gpe0d == -1)
ret = pmc_gpe_route_to_gpio(gpe0d);
if (ret == -1)
return; return;
gpe0d = ret;
misccfg_value = gpe0b << MISCCFG_GPE0_DW0_SHIFT; misccfg_value = gpe0b << MISCCFG_GPE0_DW0_SHIFT;
misccfg_value |= gpe0c << MISCCFG_GPE0_DW1_SHIFT; misccfg_value |= gpe0c << MISCCFG_GPE0_DW1_SHIFT;