mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 14:42:24 +00:00
ARM: OMAP2+: powerdomain: avoid testing whether an unsigned char is less than 0
_pwrdm_save_clkdm_state_and_activate() tried to test one of its unsigned arguments to determine whether it was less than zero. Fix by moving the error test to the caller. Reported-by: Chen Gang <gang.chen@asianux.com> Signed-off-by: Paul Walmsley <paul@pwsan.com>
This commit is contained in:
parent
4280943b6b
commit
bd70f6eb3e
@ -52,7 +52,6 @@ enum {
|
||||
#define ALREADYACTIVE_SWITCH 0
|
||||
#define FORCEWAKEUP_SWITCH 1
|
||||
#define LOWPOWERSTATE_SWITCH 2
|
||||
#define ERROR_SWITCH 3
|
||||
|
||||
/* pwrdm_list contains all registered struct powerdomains */
|
||||
static LIST_HEAD(pwrdm_list);
|
||||
@ -233,10 +232,7 @@ static u8 _pwrdm_save_clkdm_state_and_activate(struct powerdomain *pwrdm,
|
||||
{
|
||||
u8 sleep_switch;
|
||||
|
||||
if (curr_pwrst < 0) {
|
||||
WARN_ON(1);
|
||||
sleep_switch = ERROR_SWITCH;
|
||||
} else if (curr_pwrst < PWRDM_POWER_ON) {
|
||||
if (curr_pwrst < PWRDM_POWER_ON) {
|
||||
if (curr_pwrst > pwrst &&
|
||||
pwrdm->flags & PWRDM_HAS_LOWPOWERSTATECHANGE &&
|
||||
arch_pwrdm->pwrdm_set_lowpwrstchange) {
|
||||
@ -1091,7 +1087,8 @@ int pwrdm_post_transition(struct powerdomain *pwrdm)
|
||||
*/
|
||||
int omap_set_pwrdm_state(struct powerdomain *pwrdm, u8 pwrst)
|
||||
{
|
||||
u8 curr_pwrst, next_pwrst, sleep_switch;
|
||||
u8 next_pwrst, sleep_switch;
|
||||
int curr_pwrst;
|
||||
int ret = 0;
|
||||
bool hwsup = false;
|
||||
|
||||
@ -1107,16 +1104,17 @@ int omap_set_pwrdm_state(struct powerdomain *pwrdm, u8 pwrst)
|
||||
pwrdm_lock(pwrdm);
|
||||
|
||||
curr_pwrst = pwrdm_read_pwrst(pwrdm);
|
||||
if (curr_pwrst < 0) {
|
||||
ret = -EINVAL;
|
||||
goto osps_out;
|
||||
}
|
||||
|
||||
next_pwrst = pwrdm_read_next_pwrst(pwrdm);
|
||||
if (curr_pwrst == pwrst && next_pwrst == pwrst)
|
||||
goto osps_out;
|
||||
|
||||
sleep_switch = _pwrdm_save_clkdm_state_and_activate(pwrdm, curr_pwrst,
|
||||
pwrst, &hwsup);
|
||||
if (sleep_switch == ERROR_SWITCH) {
|
||||
ret = -EINVAL;
|
||||
goto osps_out;
|
||||
}
|
||||
|
||||
ret = pwrdm_set_next_pwrst(pwrdm, pwrst);
|
||||
if (ret)
|
||||
|
Loading…
Reference in New Issue
Block a user