Path: csiph.com!feeder.erje.net!1.us.feeder.erje.net!newsfeed.fsmpi.rwth-aachen.de!newsfeed.straub-nv.de!news.mixmin.net!aioe.org!bofh.it!news.nic.it!robomod From: Jonathan Cameron Newsgroups: linux.kernel Subject: Re: [PATCH] iio: accel: sca3000_core: avoid potentially uninitialized variable Date: Thu, 22 Sep 2016 19:40:02 +0200 Message-ID: References: User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: robomod@news.nic.it List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Approved: robomod@news.nic.it Lines: 41 Organization: linux.* mail to news gateway X-Original-Cc: Hartmut Knaack , Lars-Peter Clausen , Peter Meerwald-Stadler , Ioana Ciornei , Ico Doornekamp , linux-iio@vger.kernel.org, devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org X-Original-Date: Thu, 22 Sep 2016 18:39:16 +0100 X-Original-Message-ID: <55b3334b-cc97-f8df-0636-531991b0fdd0@kernel.org> X-Original-References: <20160922094432.2230485-1-arnd@arndb.de> X-Original-Sender: linux-kernel-owner@vger.kernel.org Xref: csiph.com linux.kernel:1489119 On 22/09/16 10:43, Arnd Bergmann wrote: > The newly added __sca3000_get_base_freq function handles all valid > modes of the SCA3000_REG_ADDR_MODE register, but gcc notices > that any other value (i.e. 0x00) causes the base_freq variable to > not get initialized: > > drivers/staging/iio/accel/sca3000_core.c: In function 'sca3000_write_raw': > drivers/staging/iio/accel/sca3000_core.c:527:23: error: 'base_freq' may be used uninitialized in this function [-Werror=maybe-uninitialized] > > This adds explicit error handling for unexpected register values, > to ensure this cannot happen. > > Fixes: e0f3fc9b47e6 ("iio: accel: sca3000_core: implemented IIO_CHAN_INFO_SAMP_FREQ") > Signed-off-by: Arnd Bergmann Applied to the togreg branch of iio.git. Initially pushed out as testing for the autobuilders to play with it. 'Bug' has been there a long time. The patch just move the code so I'm not going to rush this one in. Worth hardening this corner though! Thanks, Jonathan > --- > drivers/staging/iio/accel/sca3000_core.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/staging/iio/accel/sca3000_core.c b/drivers/staging/iio/accel/sca3000_core.c > index d626125d7af9..564b36d4f648 100644 > --- a/drivers/staging/iio/accel/sca3000_core.c > +++ b/drivers/staging/iio/accel/sca3000_core.c > @@ -468,6 +468,8 @@ static inline int __sca3000_get_base_freq(struct sca3000_state *st, > case SCA3000_MEAS_MODE_OP_2: > *base_freq = info->option_mode_2_freq; > break; > + default: > + ret = -EINVAL; > } > error_ret: > return ret; >