| From 9da7a5a9fdeeb76b2243f6b473363a7e6147ab6f Mon Sep 17 00:00:00 2001 |
| From: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> |
| Date: Mon, 17 Nov 2014 10:48:21 +0000 |
| Subject: ASoC: wm_adsp: Avoid attempt to free buffers that might still be in use |
| |
| From: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> |
| |
| commit 9da7a5a9fdeeb76b2243f6b473363a7e6147ab6f upstream. |
| |
| 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> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/soc/codecs/wm_adsp.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/sound/soc/codecs/wm_adsp.c |
| +++ b/sound/soc/codecs/wm_adsp.c |
| @@ -1341,6 +1341,7 @@ static int wm_adsp_load_coeff(struct wm_ |
| file, blocks, pos - firmware->size); |
| |
| out_fw: |
| + regmap_async_complete(regmap); |
| release_firmware(firmware); |
| wm_adsp_buf_free(&buf_list); |
| out: |