Commit 9a932145f2d57bad1092ba006dee9065adc5eb39
Committed by
Dmitry Torokhov
1 parent
c6bd9d4655
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
Input: ff-memless - fix a couple min_t() casts
envelope->attack_level is a u16 type. We're trying to clamp it here so it's between 0 and 0x7fff. Unfortunately, the cast to __s16 turns all the values larger than 0x7fff into negative numbers and min_t() thinks they are less than 0x7fff. envelope_level is an int so now we've got negative values stored there. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Showing 1 changed file with 2 additions and 2 deletions Side-by-side Diff
drivers/input/ff-memless.c
... | ... | @@ -176,7 +176,7 @@ |
176 | 176 | value, envelope->attack_level); |
177 | 177 | time_from_level = jiffies_to_msecs(now - state->play_at); |
178 | 178 | time_of_envelope = envelope->attack_length; |
179 | - envelope_level = min_t(__s16, envelope->attack_level, 0x7fff); | |
179 | + envelope_level = min_t(u16, envelope->attack_level, 0x7fff); | |
180 | 180 | |
181 | 181 | } else if (envelope->fade_length && effect->replay.length && |
182 | 182 | time_after(now, |
... | ... | @@ -184,7 +184,7 @@ |
184 | 184 | time_before(now, state->stop_at)) { |
185 | 185 | time_from_level = jiffies_to_msecs(state->stop_at - now); |
186 | 186 | time_of_envelope = envelope->fade_length; |
187 | - envelope_level = min_t(__s16, envelope->fade_level, 0x7fff); | |
187 | + envelope_level = min_t(u16, envelope->fade_level, 0x7fff); | |
188 | 188 | } else |
189 | 189 | return value; |
190 | 190 |