aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/core/control.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/sound/core/control.c b/sound/core/control.c
index 9ce00ed20fb..d1b5ce818a4 100644
--- a/sound/core/control.c
+++ b/sound/core/control.c
@@ -285,10 +285,8 @@ static unsigned int snd_ctl_hole_check(struct snd_card *card,
285 struct snd_kcontrol *kctl; 285 struct snd_kcontrol *kctl;
286 286
287 list_for_each_entry(kctl, &card->controls, list) { 287 list_for_each_entry(kctl, &card->controls, list) {
288 if ((kctl->id.numid <= card->last_numid && 288 if (kctl->id.numid < card->last_numid + 1 + count &&
289 kctl->id.numid + kctl->count > card->last_numid) || 289 kctl->id.numid + kctl->count > card->last_numid + 1)
290 (kctl->id.numid <= card->last_numid + count - 1 &&
291 kctl->id.numid + kctl->count > card->last_numid + count - 1))
292 return card->last_numid = kctl->id.numid + kctl->count - 1; 290 return card->last_numid = kctl->id.numid + kctl->count - 1;
293 } 291 }
294 return card->last_numid; 292 return card->last_numid;