Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7507e8da authored by Borislav Petkov's avatar Borislav Petkov Committed by Jaroslav Kysela
Browse files

[ALSA] sound/core/control.c: hard-irq-safe -> hard-irq-unsafe lock warning



The lock grabbed in snd_ctl_empty_read_queue() is hardirq-unsafe but we hold
an hardirq-safe one already, so make the &ctl->read_lock also hard-irq-safe.

Signed-off-by: default avatarBorislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
parent 31127f2e
Loading
Loading
Loading
Loading
+3 −2
Original line number Original line Diff line number Diff line
@@ -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)
static void snd_ctl_empty_read_queue(struct snd_ctl_file * ctl)
{
{
	unsigned long flags;
	struct snd_kctl_event *cread;
	struct snd_kctl_event *cread;
	
	
	spin_lock(&ctl->read_lock);
	spin_lock_irqsave(&ctl->read_lock, flags);
	while (!list_empty(&ctl->events)) {
	while (!list_empty(&ctl->events)) {
		cread = snd_kctl_event(ctl->events.next);
		cread = snd_kctl_event(ctl->events.next);
		list_del(&cread->list);
		list_del(&cread->list);
		kfree(cread);
		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)
static int snd_ctl_release(struct inode *inode, struct file *file)