From patchwork Tue Nov 8 14:00:49 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 101553 Delivered-To: patch@linaro.org Received: by 10.182.113.165 with SMTP id iz5csp1714576obb; Tue, 8 Nov 2016 06:10:01 -0800 (PST) X-Received: by 10.99.4.213 with SMTP id 204mr19069210pge.77.1478614201266; Tue, 08 Nov 2016 06:10:01 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o29si37221761pgn.122.2016.11.08.06.10.00; Tue, 08 Nov 2016 06:10:01 -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 S1752917AbcKHOJ5 (ORCPT + 27 others); Tue, 8 Nov 2016 09:09:57 -0500 Received: from mout.kundenserver.de ([212.227.126.133]:49650 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751134AbcKHOJx (ORCPT ); Tue, 8 Nov 2016 09:09:53 -0500 Received: from wuerfel.lan. ([78.43.20.153]) by mrelayeu.kundenserver.de (mreue005) with ESMTPA (Nemesis) id 0LjfXI-1cfMWM3S4u-00bbRn; Tue, 08 Nov 2016 15:01:18 +0100 From: Arnd Bergmann To: Jonathan Cameron Cc: Arnd Bergmann , Lars-Peter Clausen , Michael Hennerich , Hartmut Knaack , Peter Meerwald-Stadler , Greg Kroah-Hartman , Eva Rachel Retuya , linux-iio@vger.kernel.org, devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org Subject: [PATCH] staging: iio: ad9832: allocate data before using Date: Tue, 8 Nov 2016 15:00:49 +0100 Message-Id: <20161108140115.2250646-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:Yt93Q//W9AiCO4mQGEfa1t62tgjAKlQL9XjKMrcweIf00kOodGe Ss+f9/WCIpKEl6zJKiRUtGtNwuv9J6+KeofPw8+bIJpbiQ8SF79g9mOlxR3mHNZKNTlRc6M eCgTnfYW3Yt/2ldPAPHwELNUMdVPd+BqEu3J0lV5uDejio7JHbPGF2vYqSPwa7e8CIllN6p jhGyhFxbFkcy1cBFSR3yA== X-UI-Out-Filterresults: notjunk:1; V01:K0:hw4J3Ncue7w=:IdvkfMyBy9CukALOGRaSJS HVa2E7CW5qLlLLPbBz143yyxGzmf3VTg3TXtesn564Rv+QWozIVO/NBs00Kr1QcZvQROi/iHR PSNy3x1Ju1uU4y2nYHOY4UrcXhYTYX2HgvtoUm6dzfqbxpq3NK7/4co9Bxwyw4hv5QQTAvofQ J76ATizJ/IWbG5qYQUgYQzPdX4UFBiGkmiD4GdJ23hnhRQaI+Xegbpc4cMN2g//4OnkCw9Q/u q0euMwGWWQehdlREHWtydHRG/Tnyw2vahrX3v4tQg+KOTm1r0Z4svzjy2Rbc4QP6+r+x7EX0i wLvjwXDjOqGfbet98WLjS1rnBfP5ZDOTV83/Ri6/jl5HTzO2bgQHOildj7WVT2jUbv1aO3lOW GbumfW0uX0or0a3IywDQDGmNB8m+S/Dw4b5vmcUYi4IC+OAwhxJYPh6EKbhTqtnKyo3IdQvmv xpHuT8I3zqFP/eo9iZFsdV7jMZiTDN/cBxHVwBlnVSG0wQ+zid4VTlBQmULSfSP0i6XbkjTw5 sbTjhLwBfXdmv54/DJZNEDyc9Jibc53YOUjEdp++GphYv09fwWiJ00AsAjKhfEXqZQPvPBHVR zljdsPpmIvK9GWOrCp0QTcXr/lAv/HAmWUdp9DoKWzGpQYVi/RH+/aKME1kT3zCJUKyG5SNEm s41UajrZTXhn5qRCKsHUhqsu6Zy9SOrNlHpxexHbk+RwV6vgTFtIN1FCTTLs/dYsGo30= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The regulator changes assigned data to an uninitialized pointer: drivers/staging/iio/frequency/ad9832.c: In function 'ad9832_probe': drivers/staging/iio/frequency/ad9832.c:214:11: error: 'st' may be used uninitialized in this function [-Werror=maybe-uninitialized] This moves the allocation of the 'st' structure before its first use, as it should have been. Fixes: 43a07e48af44 ("staging: iio: ad9832: clean-up regulator 'reg'") Fixes: a98461d79ba5 ("staging: iio: ad9832: add DVDD regulator") Signed-off-by: Arnd Bergmann --- drivers/staging/iio/frequency/ad9832.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) -- 2.9.0 diff --git a/drivers/staging/iio/frequency/ad9832.c b/drivers/staging/iio/frequency/ad9832.c index 639047fade30..a5b2f068168d 100644 --- a/drivers/staging/iio/frequency/ad9832.c +++ b/drivers/staging/iio/frequency/ad9832.c @@ -211,6 +211,13 @@ static int ad9832_probe(struct spi_device *spi) return -ENODEV; } + indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); + if (!indio_dev) + return -ENOMEM; + + spi_set_drvdata(spi, indio_dev); + st = iio_priv(indio_dev); + st->avdd = devm_regulator_get(&spi->dev, "avdd"); if (IS_ERR(st->avdd)) return PTR_ERR(st->avdd); @@ -233,13 +240,6 @@ static int ad9832_probe(struct spi_device *spi) goto error_disable_avdd; } - indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); - if (!indio_dev) { - ret = -ENOMEM; - goto error_disable_dvdd; - } - spi_set_drvdata(spi, indio_dev); - st = iio_priv(indio_dev); st->mclk = pdata->mclk; st->spi = spi;