From b02a1cb7dbb6b0815ddd8e104ad8819e847947a0 Mon Sep 17 00:00:00 2001 From: Shashank Sharma Date: Fri, 28 Sep 2012 16:29:24 +0530 Subject: asoc: tegra: WAR: Check AVP id before setting DMA WAR to check souncard data's avp_id before trying to set DMA address. An invalid avp_id can cause invlaid rtd, causing panic in control ioctl calls. Bug 1046249 Bug 1044761 Bug 1049940 Bug 1050152 Change-Id: Ib536220fdb92f8256c777d6fa14b66e47bc6b7be Signed-off-by: Shashank Sharma Reviewed-on: http://git-master/r/134426 (cherry picked from commit 007fd7b1ae101c5be2a3d35ad11e7190862c04ca) Reviewed-on: http://git-master/r/142493 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Tested-by: Matthew Pedro Reviewed-by: Winnie Hsu --- sound/soc/tegra/tegra_asoc_utils.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sound/soc/tegra/tegra_asoc_utils.c b/sound/soc/tegra/tegra_asoc_utils.c index 80d22d203fb6..99ba90d9fc7b 100644 --- a/sound/soc/tegra/tegra_asoc_utils.c +++ b/sound/soc/tegra/tegra_asoc_utils.c @@ -133,6 +133,9 @@ static int tegra_set_dma_addr(struct snd_kcontrol *kcontrol, struct snd_pcm_substream *substream; struct tegra_runtime_data *prtd; + if (data->avp_device_id < 0) + return 0; + data->avp_dma_addr = ucontrol->value.integer.value[0]; rtd = &card->rtd[data->avp_device_id]; -- cgit v1.2.3