diff --git a/[refs] b/[refs] index cbcefadda837..ef2d0cb70124 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 31127f2eb945f092010a457c65260b0e19471cc5 +refs/heads/master: 7507e8da2f21476007501f04d8bce2b7d0cb3971 diff --git a/trunk/sound/core/control.c b/trunk/sound/core/control.c index 4c3aa8e10378..df0774c76f6f 100644 --- a/trunk/sound/core/control.c +++ b/trunk/sound/core/control.c @@ -93,15 +93,16 @@ static int snd_ctl_open(struct inode *inode, struct file *file) static void snd_ctl_empty_read_queue(struct snd_ctl_file * ctl) { + unsigned long flags; struct snd_kctl_event *cread; - spin_lock(&ctl->read_lock); + spin_lock_irqsave(&ctl->read_lock, flags); while (!list_empty(&ctl->events)) { cread = snd_kctl_event(ctl->events.next); list_del(&cread->list); kfree(cread); } - spin_unlock(&ctl->read_lock); + spin_unlock_irqrestore(&ctl->read_lock, flags); } static int snd_ctl_release(struct inode *inode, struct file *file)