diff options
author | Subhransu S. Prusty <subhransu.s.prusty@intel.com> | 2017-08-22 14:15:50 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2017-08-23 13:55:07 +0300 |
commit | 3b3011adada3bba47c56c205634e1b32512e0c7c (patch) | |
tree | 55a9ddb581c0e82c6dd7566a54ed0f8ba08e694f /sound/soc/intel/skylake/cnl-sst.c | |
parent | 80b649039240ec41a6ab0a5e347853bc78abfd2d (diff) | |
download | linux-3b3011adada3bba47c56c205634e1b32512e0c7c.tar.xz |
ASoC: Intel: Skylake: Fix to free dsp resource on ipc_init failure
For some dsp init error path, irq and few more resources are not freed.
This results in oops. So, fix it by freeing up the resources on ipc_init
failure.
Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
Acked-By: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/intel/skylake/cnl-sst.c')
-rw-r--r-- | sound/soc/intel/skylake/cnl-sst.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sound/soc/intel/skylake/cnl-sst.c b/sound/soc/intel/skylake/cnl-sst.c index 48ef04d5da89..387de388ce29 100644 --- a/sound/soc/intel/skylake/cnl-sst.c +++ b/sound/soc/intel/skylake/cnl-sst.c @@ -450,8 +450,10 @@ int cnl_sst_dsp_init(struct device *dev, void __iomem *mmio_base, int irq, CNL_ADSP_W1_SZ); ret = cnl_ipc_init(dev, cnl); - if (ret) + if (ret) { + skl_dsp_free(sst); return ret; + } cnl->boot_complete = false; init_waitqueue_head(&cnl->boot_wait); |