Skip to content

Commit

Permalink
drm/nouveau/fan: fix selection of fan speed when fan->get returns an …
Browse files Browse the repository at this point in the history
…error

fan->get returns int, but we write it to unsigned variable, and then check
whether it's >= 0 (it always is)

Found by smatch:
drivers/gpu/drm/nouveau/core/subdev/therm/fan.c:61 nouveau_fan_update() warn: always true condition '(duty >= 0) => (0-u32max >= 0)'

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
  • Loading branch information
Marcin Slusarz authored and Ben Skeggs committed Feb 20, 2013
1 parent cd89783 commit fc3109a
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions drivers/gpu/drm/nouveau/core/subdev/therm/fan.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ nouveau_fan_update(struct nouveau_fan *fan, bool immediate, int target)
struct nouveau_timer *ptimer = nouveau_timer(priv);
unsigned long flags;
int ret = 0;
u32 duty;
int duty;

/* update target fan speed, restricting to allowed range */
spin_lock_irqsave(&fan->lock, flags);
Expand All @@ -64,9 +64,9 @@ nouveau_fan_update(struct nouveau_fan *fan, bool immediate, int target)
* it is meant to bump the fan speed more incrementally
*/
if (duty < target)
duty = min(duty + 3, (u32) target);
duty = min(duty + 3, target);
else if (duty > target)
duty = max(duty - 3, (u32) target);
duty = max(duty - 3, target);
} else {
duty = target;
}
Expand Down

0 comments on commit fc3109a

Please sign in to comment.