diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2014-09-07 21:43:07 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2014-09-08 10:54:18 +0200 |
commit | 0f519b622151339b7754d0406ddc40940063572a (patch) | |
tree | 08047b74f8082d6b3ee1b041b5e9950b2a1c6a0b /sound/core | |
parent | d89c6c0c91af0344b52dd21ca48dd29821fee677 (diff) | |
download | linux-0f519b622151339b7754d0406ddc40940063572a.tar.bz2 |
ALSA: pcm: snd_interval_step: drop the min parameter
The min parameter was not used by any caller. And if it were used,
underflows in the calculations could lead to incorrect results.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/core')
-rw-r--r-- | sound/core/pcm_lib.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c index 9acc77eae487..6fd5e1ce5462 100644 --- a/sound/core/pcm_lib.c +++ b/sound/core/pcm_lib.c @@ -1113,16 +1113,16 @@ int snd_interval_list(struct snd_interval *i, unsigned int count, EXPORT_SYMBOL(snd_interval_list); -static int snd_interval_step(struct snd_interval *i, unsigned int min, unsigned int step) +static int snd_interval_step(struct snd_interval *i, unsigned int step) { unsigned int n; int changed = 0; - n = (i->min - min) % step; + n = i->min % step; if (n != 0 || i->openmin) { i->min += step - n; changed = 1; } - n = (i->max - min) % step; + n = i->max % step; if (n != 0 || i->openmax) { i->max -= n; changed = 1; @@ -1427,7 +1427,7 @@ static int snd_pcm_hw_rule_step(struct snd_pcm_hw_params *params, struct snd_pcm_hw_rule *rule) { unsigned long step = (unsigned long) rule->private; - return snd_interval_step(hw_param_interval(params, rule->var), 0, step); + return snd_interval_step(hw_param_interval(params, rule->var), step); } /** |