summaryrefslogtreecommitdiff
path: root/sound/hda
diff options
context:
space:
mode:
authorBard Liao <yung-chuan.liao@linux.intel.com>2019-05-30 04:59:00 +0800
committerTakashi Iwai <tiwai@suse.de>2019-05-30 11:00:21 +0200
commitee8829dc609c5c4a425b4a65fbb4cd56fb82f1f4 (patch)
tree6b53f21b589145d907973c48a559acfe13e79306 /sound/hda
parent64ca9d9fcb3e3c86b1417e3d17a90b43dd660f81 (diff)
ALSA: hda: fix: lock reg_lock before calling snd_hdac_bus_update_rirb
The patch is to fix commit 5e13cf6cd64c (ALSA: hda: add polling mode in snd_hdac_bus_get_response) spin_lock_irq should be called before snd_hdac_bus_update_rirb. Fixes: 5e13cf6cd64c ("ALSA: hda: add polling mode in snd_hdac_bus_get_response") Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/hda')
-rw-r--r--sound/hda/hdac_controller.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/hda/hdac_controller.c b/sound/hda/hdac_controller.c
index a16ac31bda83..d6a91429c058 100644
--- a/sound/hda/hdac_controller.c
+++ b/sound/hda/hdac_controller.c
@@ -239,9 +239,9 @@ int snd_hdac_bus_get_response(struct hdac_bus *bus, unsigned int addr,
timeout = jiffies + msecs_to_jiffies(1000);
for (loopcounter = 0;; loopcounter++) {
+ spin_lock_irq(&bus->reg_lock);
if (bus->polling_mode)
snd_hdac_bus_update_rirb(bus);
- spin_lock_irq(&bus->reg_lock);
if (!bus->rirb.cmds[addr]) {
if (res)
*res = bus->rirb.res[addr]; /* the last value */