From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757878Ab2K3LMt (ORCPT ); Fri, 30 Nov 2012 06:12:49 -0500 Received: from mail-lb0-f174.google.com ([209.85.217.174]:60295 "EHLO mail-lb0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752738Ab2K3LMs (ORCPT ); Fri, 30 Nov 2012 06:12:48 -0500 MIME-Version: 1.0 In-Reply-To: <20121129235822.GA2590@local> References: <201211271348.14603.vitas@nppfactor.kiev.ua> <201211291822.16565.vitas@nppfactor.kiev.ua> <201211291836.59358.vitas@nppfactor.kiev.ua> <20121129235822.GA2590@local> Date: Fri, 30 Nov 2012 12:12:46 +0100 X-Google-Sender-Auth: 9bViMx08V6_sPgTK0YcX64XsGe0 Message-ID: Subject: Re: [PATCH] uio.c: Fix warning: 'ret' might be used uninitialized From: Tux9 To: "Hans J. Koch" Cc: Vitalii Demianets , linux-kernel@vger.kernel.org, Greg Kroah-Hartman Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org I like Vitalii's solution more. Hans's solution assign the value -ENOMEM to ret in every round of the loop, which is a kind of wasting CPU cycles. On Fri, Nov 30, 2012 at 12:58 AM, Hans J. Koch wrote: > On Thu, Nov 29, 2012 at 06:36:59PM +0200, Vitalii Demianets wrote: >> > On Thursday 29 November 2012 18:05:27 Tux9 wrote: >> > > Hans, I think there are something wrong in your patch, while Vitalii's >> > > is right. The variable "ret" is reused in line 292 and line 295, so >> > > the value of "ret" would be overridden (if it goto err_map in line 284 >> > > when mi>=1). >> > >> > Actually, both patches do exactly the same thing. Hans's patch establishes >> > default value for the ret for all those "other" cases when ret is not >> > explicitly overridden. My patch explicitly enumerates all those "other" >> > cases in more wordily manner. >> > >> >> Oops, disregard this. After looking at it more thoroughly I got your point. >> You are right, ret is overridden at first iteration (mi == 0), so Hans's >> approach does not work. >> I must do more thinking before replying in a hurry. > > You're right. Initialization of "ret" has to take place at the beginning of > the loop. > > I think this version is right: > > > From 00c3c734c0dde67873a628bcb18cee403c95c301 Mon Sep 17 00:00:00 2001 > From: "Hans J. Koch" > Date: Fri, 30 Nov 2012 00:51:50 +0100 > Subject: [PATCH] uio: Fix warning: 'ret' might be used uninitialized > > In two cases, the return value variable "ret" can be undefined. > > Signed-off-by: Hans J. Koch > --- > drivers/uio/uio.c | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c > index 5110f36..0c80df2 100644 > --- a/drivers/uio/uio.c > +++ b/drivers/uio/uio.c > @@ -273,6 +273,7 @@ static int uio_dev_add_attributes(struct uio_device *idev) > struct uio_portio *portio; > > for (mi = 0; mi < MAX_UIO_MAPS; mi++) { > + ret = -ENOMEM; > mem = &idev->info->mem[mi]; > if (mem->size == 0) > break; > @@ -298,6 +299,7 @@ static int uio_dev_add_attributes(struct uio_device *idev) > } > > for (pi = 0; pi < MAX_UIO_PORT_REGIONS; pi++) { > + ret = -ENOMEM; > port = &idev->info->port[pi]; > if (port->size == 0) > break; > -- > 1.7.9 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/