From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752126AbdBCTij (ORCPT ); Fri, 3 Feb 2017 14:38:39 -0500 Received: from mout.kundenserver.de ([212.227.17.10]:64968 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752072AbdBCTi0 (ORCPT ); Fri, 3 Feb 2017 14:38:26 -0500 From: Arnd Bergmann To: Jonathan Cameron , Arnd Bergmann , Marek Vasut Cc: Hartmut Knaack , Lars-Peter Clausen , Peter Meerwald-Stadler , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] iio: adc: handle unknow of_device_id data Date: Fri, 3 Feb 2017 18:01:23 +0100 Message-Id: <20170203193756.3848151-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:v1xXa4cv32QRBdUXvGZRvNKtkDtstqToSKgxBL0Nd8tDaEcaEQ7 QQ5xdtuH15KcEzJS9spYs0n3pOVzXsPI+gpYyyYw8cZ0lBDsXc+JVEHq7xrwel7TVDNaxPV 8iIFVstA+7LA+6xrU/UN7R3s6YrHsvrLgL1JLmNe6eSrQwratNMmPxNNY7oZxTtkj34tFN+ BImvrM1j9ikQiSux8F4ZA== X-UI-Out-Filterresults: notjunk:1;V01:K0:MUcds8lFAcY=:KyKTtjjSbCALusIwHpDU1S T1SogcN77+KRB+G5aLy9NM5Ut7zDfGkDh+/dwye8oPcEAwkxVU/jRJmyd9m+tQ65mIudNhXGy GM0M4NcDLlcuc6XGXONe3E4X7qQNCbdxPmWVcwYZdC1B6FEfnDNieG+OGRlQv1yoZh6jj1j7B fbqf2/vGcsu2UzFvZgYsgTI0WIkxLqToEZmQJu7RyIhw9HtBu1yzwmurW/8vSJabtt/NZzPZe ITTfbatwGkHnFNDQso5mO3IW9fjYJ/Ra9I9i8cO4gvz+cgdT11nc2ITc7Nn+Nsgipjj0Mjmxe bpQUO8p//pjehjyr2k0+mR+KuvORzDbQ6MGHw0CZdj1FvAK+cetTQ9C19PVNlZiQBYG7eRJha ygSKKa9Zitw82stucEHcrBCPduNAXnIK29fo+qayk81gjUnP8fTUYSGma/63B4EI2ox9mHnhP 6VKFnL9UcmGnw8QCzuDxVy4oqP2qHHTHlodn12OpkziHDXRD8zTzitD3IyM7fGi9tcczx8F6Q DH0vdvlCYNUtuFxuidmdArTPeFngFMchd1U2GTCr8sttKCYSqUdfAydCd2IweMzW6lgYLwNjV HIWVrb7VsCfBwIR4t28zfby4nooQutoUy6J6nlBYU2bjtTliE7VRwHnsShiTCWe6+4qLVbvY2 Rje8XTNsf4WKB3JDMTzqcYnNTErlQifLXRWoS6F/BxtnSHC7R3B7YwSqAbqNBJHI9FOM= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If we get an unknown 'childmode' value, a number of variables are not initialized properly: drivers/iio/adc/rcar-gyroadc.c: In function 'rcar_gyroadc_probe': drivers/iio/adc/rcar-gyroadc.c:390:5: error: 'num_channels' may be used uninitialized in this function [-Werror=maybe-uninitialized] drivers/iio/adc/rcar-gyroadc.c:426:22: error: 'sample_width' may be used uninitialized in this function [-Werror=maybe-uninitialized] drivers/iio/adc/rcar-gyroadc.c:428:23: error: 'channels' may be used uninitialized in this function [-Werror=maybe-uninitialized] The driver is currently correct, but handling this properly is more robust for possible modifications. There is also a false-positive warning about adcmode being possibly uninitialized, but that cannot happen as we also check the 'first' flag: drivers/iio/adc/rcar-gyroadc.c:398:26: error: 'adcmode' may be used uninitialized in this function [-Werror=maybe-uninitialized] This adds an initialization for 'adcmode' and bails out for any unknown childmode. Fixes: 059c53b32329 ("iio: adc: Add Renesas GyroADC driver") Signed-off-by: Arnd Bergmann --- drivers/iio/adc/rcar-gyroadc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/iio/adc/rcar-gyroadc.c b/drivers/iio/adc/rcar-gyroadc.c index 0c44f72c32a8..331ff9a673be 100644 --- a/drivers/iio/adc/rcar-gyroadc.c +++ b/drivers/iio/adc/rcar-gyroadc.c @@ -336,7 +336,7 @@ static int rcar_gyroadc_parse_subdevs(struct iio_dev *indio_dev) struct device_node *child; struct regulator *vref; unsigned int reg; - unsigned int adcmode, childmode; + unsigned int adcmode = -1, childmode; unsigned int sample_width; unsigned int num_channels; int ret, first = 1; @@ -366,6 +366,9 @@ static int rcar_gyroadc_parse_subdevs(struct iio_dev *indio_dev) channels = rcar_gyroadc_iio_channels_3; num_channels = ARRAY_SIZE(rcar_gyroadc_iio_channels_3); break; + default: + dev_err(dev, "unknown device type"); + return -EINVAL; } /* -- 2.9.0