ASoC: wm_adsp: Avoid attempt to free buffers that might still be in use
authorCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
Mon, 17 Nov 2014 10:48:21 +0000 (10:48 +0000)
committerMark Brown <broonie@kernel.org>
Mon, 17 Nov 2014 14:22:04 +0000 (14:22 +0000)
We should not free any buffers associated with writing out coefficients
to the DSP until all the async writes have completed. This patch updates
the out of memory path when allocating a new buffer to include a call to
regmap_async_complete.

Reported-by: JS Park <aitdark.park@samsung.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
sound/soc/codecs/wm_adsp.c

index f412a9911a75d2fe531930f6a0108fb977c41e77..67124783558a5374b547f26d30d1ccc2bdc16ae4 100644 (file)
@@ -1355,6 +1355,7 @@ static int wm_adsp_load_coeff(struct wm_adsp *dsp)
                          file, blocks, pos - firmware->size);
 
 out_fw:
+       regmap_async_complete(regmap);
        release_firmware(firmware);
        wm_adsp_buf_free(&buf_list);
 out: