From patchwork Tue Nov 8 13:38:52 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 101565 Delivered-To: patch@linaro.org Received: by 10.140.97.165 with SMTP id m34csp1552840qge; Tue, 8 Nov 2016 05:40:03 -0800 (PST) X-Received: by 10.99.45.7 with SMTP id t7mr6929658pgt.86.1478612403096; Tue, 08 Nov 2016 05:40:03 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x70si36968632pfj.101.2016.11.08.05.40.00; Tue, 08 Nov 2016 05:40:03 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752492AbcKHNjr (ORCPT + 27 others); Tue, 8 Nov 2016 08:39:47 -0500 Received: from mout.kundenserver.de ([212.227.126.130]:55085 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751950AbcKHNje (ORCPT ); Tue, 8 Nov 2016 08:39:34 -0500 Received: from wuerfel.lan. ([78.43.20.153]) by mrelayeu.kundenserver.de (mreue003) with ESMTPA (Nemesis) id 0LcCDx-1cVDi90PTx-00jalg; Tue, 08 Nov 2016 14:39:20 +0100 From: Arnd Bergmann To: Mark Brown Cc: Arnd Bergmann , Patrick Lai , Banajit Goswami , Liam Girdwood , Srinivas Kandagatla , Kenneth Westfield , alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Subject: [PATCH] ASoC: lpass-platform: initialize dma channel number Date: Tue, 8 Nov 2016 14:38:52 +0100 Message-Id: <20161108133916.1742379-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 MIME-Version: 1.0 X-Provags-ID: V03:K0:CICNMZJaVusR+LZbDtonxYFzlIVZqfix1qwDrWfD0Gj34hwVMXI FIn5i6plb1nGPM3DfwIJLfyJcY8kr43QXshcvuamZYBsTQSdng8wTHP5JPESix5nby+dtMB A0Cw/j1lxbWLOjbRT1eU5SY3ADnTaaEq2Wx2A6ddV8ICXFgoTmGWATgTM8Ru3QUNcHYSCG+ i9TZGBcGg+LWd7t8kACWQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:pUAbsXqO8ck=:iHp4St2p2fcCCfV0ebzycZ 0GBi3rvtI0MKxjy5AIMZLeviISLWuAncllAPwcWsxsWVNU9663+rYE7tqOEVnDgJ3RgQlRjwd 89cWTip06w2Thh9L+BLJnLWIzpUsKtIQYtb1iu9U9F4HH/J1qZLLGlITuWg/BNCmOAVIQxIIu CVl2jIPJO8Xe3A4BEPYDRjh+WSeZNu3JkbnlFCzQmRPec/stzAqeBUG6NxS3aa3b8AOM2ehWj YTLc5Ayr70rT/jZxtD8i5ONvWjb9LAqeH2yzrtF6RCjl//XpsxBodwvxBGOYEtPSHtOI1534w N3/2cyg330VeHWgdXgJ+WEEH5ZveFyCUkC8NeWj2LAdy9VgMBguaWVYM1A3kSiEhQT8S9SsXy zseTlR5z2x7hug75T4donKlaLygSWBKlmlm0DFq+5cY1Gb1P9tOFWDCpVZN8hgQsbFL08ciTV UOVHdr6r666SyClosvYJLoGmDGGvmfUV0OZiL13myJdmVo6E+axG10pKaprj9e5jDNo2XTKga CvoIuba5orGDojRCT6Gg+rrY5+C9LmYgDsCLbrVLlRVGb149sDYqbsdZuw0OZxMBJVYSNy3UO 1HA5EN3CpSs7/CM4QraB3OaT23Hh5fBXwJnRMbHExyUc3EMT/bwRokQVgsQnFRV2dC7mEi43P 2cOAn0oiiJopc64RrIJwVGJk2/KORSI1wPZsN87873ulCU8PRAa5zJjSlA8zzKo5pBmxUfPZE WNS9stjvDkdMHoFf Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A bugfix accidentally removed the implicit initialization of the dma channel number, causing undefined behavior when v->alloc_dma_channel is NULL: sound/soc/qcom/lpass-platform.c: In function ‘lpass_platform_pcmops_open’: sound/soc/qcom/lpass-platform.c:83:29: error: ‘dma_ch’ may be used uninitialized in this function [-Werror=maybe-uninitialized] This adds back an explicit initialization to zero, restoring the previous behavior for that case. Fixes: 022d00ee0b55 ("ASoC: lpass-platform: Fix broken pcm data usage") Signed-off-by: Arnd Bergmann --- sound/soc/qcom/lpass-platform.c | 3 +++ 1 file changed, 3 insertions(+) -- 2.9.0 diff --git a/sound/soc/qcom/lpass-platform.c b/sound/soc/qcom/lpass-platform.c index 07000f53db44..e223bc90b2ef 100644 --- a/sound/soc/qcom/lpass-platform.c +++ b/sound/soc/qcom/lpass-platform.c @@ -77,6 +77,9 @@ static int lpass_platform_pcmops_open(struct snd_pcm_substream *substream) if (v->alloc_dma_channel) dma_ch = v->alloc_dma_channel(drvdata, dir); + else + dma_ch = 0; + if (dma_ch < 0) return dma_ch;