提交 077411e5 编写于 作者: V Vinod Koul 提交者: Mark Brown

ASoC: Intel: Skylake: Unmap the address last

In Skylake destructor we unmap the hardware address and then free
links and streams. The stream free accesses hardware to write to
registers and predictably causes oops.

So change the order and unmap last in destructor.
Signed-off-by: NJeeja KP <jeeja.kp@intel.com>
Signed-off-by: NVinod Koul <vinod.koul@intel.com>
Signed-off-by: NMark Brown <broonie@kernel.org>
上级 3f7f8489
...@@ -316,12 +316,13 @@ static int skl_free(struct hdac_ext_bus *ebus) ...@@ -316,12 +316,13 @@ static int skl_free(struct hdac_ext_bus *ebus)
if (bus->irq >= 0) if (bus->irq >= 0)
free_irq(bus->irq, (void *)bus); free_irq(bus->irq, (void *)bus);
if (bus->remap_addr)
iounmap(bus->remap_addr);
snd_hdac_bus_free_stream_pages(bus); snd_hdac_bus_free_stream_pages(bus);
snd_hdac_stream_free_all(ebus); snd_hdac_stream_free_all(ebus);
snd_hdac_link_free_all(ebus); snd_hdac_link_free_all(ebus);
if (bus->remap_addr)
iounmap(bus->remap_addr);
pci_release_regions(skl->pci); pci_release_regions(skl->pci);
pci_disable_device(skl->pci); pci_disable_device(skl->pci);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册