[alsa-devel] [PATCH] ALSA: hda: fix: lock reg_lock before calling snd_hdac_bus_update_rirb
From: Bard Liao yung-chuan.liao@linux.intel.com
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.
Signed-off-by: Bard Liao yung-chuan.liao@linux.intel.com --- Takashi,
Sorry, I make a mistake on the "ALSA: hda: add polling mode in snd_hdac_bus_get_response" patch. This patch is a fix for that.
Thanks, Bard --- sound/hda/hdac_controller.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
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 */
On Wed, 29 May 2019 22:59:00 +0200, Bard liao wrote:
From: Bard Liao yung-chuan.liao@linux.intel.com
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.
Signed-off-by: Bard Liao yung-chuan.liao@linux.intel.com
Takashi,
Sorry, I make a mistake on the "ALSA: hda: add polling mode in snd_hdac_bus_get_response" patch. This patch is a fix for that.
A good catch, merged now.
thanks,
Takashi
Thanks, Bard
sound/hda/hdac_controller.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
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++) {
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 */spin_lock_irq(&bus->reg_lock);
-- 2.17.1
participants (2)
-
Bard liao
-
Takashi Iwai