Message ID | 20150208224422.GA22749@turing (mailing list archive) |
---|---|
State | Changes Requested, archived |
Headers |
Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from <linux-media-owner@vger.kernel.org>) id 1YKaaq-0003ux-Jx; Sun, 08 Feb 2015 23:44:44 +0100 X-tubIT-Incoming-IP: 209.132.180.67 Received: from vger.kernel.org ([209.132.180.67]) by mail.tu-berlin.de (exim-4.72/mailfrontend-5) with esmtp id 1YKaao-0005yP-6U; Sun, 08 Feb 2015 23:44:44 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758557AbbBHWo0 (ORCPT <rfc822;mkrufky@linuxtv.org> + 1 other); Sun, 8 Feb 2015 17:44:26 -0500 Received: from mail-we0-f181.google.com ([74.125.82.181]:53102 "EHLO mail-we0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752066AbbBHWo0 (ORCPT <rfc822; linux-media@vger.kernel.org>); Sun, 8 Feb 2015 17:44:26 -0500 Received: by mail-we0-f181.google.com with SMTP id w62so6099543wes.12; Sun, 08 Feb 2015 14:44:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:date:to:cc:subject:message-id:mime-version:content-type :content-disposition:user-agent; bh=NM8RMnPVs9ojvjifpZpKALXMFK5k07ZaF7TBqi77DHI=; b=EkXDJwidnB71DfdcbootUJTcybDYjm5ac96ZgdnBG+I6U4hmgcBx1KDdy9I5Noig6t v6/1yxVrc2XKjQQV8WzuAN1Vhs/IzoRXrOko6WKlBGGJQkGBU7bjAeSQ7h2MHPB79+N4 7qbybzFqb0I8PYIeUif8RphN1T+A1FsJsatgyuo01H3f6K70PlH3Wbfqv/RgjL9HKrWz +IPYaSintRHVjTtwzrocCA1LviEMcpHw2oaU4um64dAlpVdq0XvenX5S4Rw7YdOpBGZl HLg4UGLkQGA9QOngi/eiDi9F9VSdzZOfOPcsn81shRMbtWu2LfvT1LTFsvzIAzp6erEb l56Q== X-Received: by 10.194.243.1 with SMTP id wu1mr35798059wjc.69.1423435464768; Sun, 08 Feb 2015 14:44:24 -0800 (PST) Received: from localhost (cpc9-slam5-2-0-cust824.2-4.cable.virginm.net. [81.108.163.57]) by mx.google.com with ESMTPSA id n6sm13759717wjy.8.2015.02.08.14.44.23 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 08 Feb 2015 14:44:23 -0800 (PST) From: Luis de Bethencourt <luis@debethencourt.com> X-Google-Original-From: Luis de Bethencourt <luis.bg@samsung.com> Date: Sun, 8 Feb 2015 22:44:22 +0000 To: linux-media@vger.kernel.org Cc: crope@iki.fi, mchehab@osg.samsung.com, linux-kernel@vger.kernel.org Subject: [PATCH] rtl2832: remove compiler warning Message-ID: <20150208224422.GA22749@turing> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: <linux-media.vger.kernel.org> X-Mailing-List: linux-media@vger.kernel.org X-PMX-Version: 6.0.0.2142326, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2015.2.8.223316 X-PMX-Spam: Gauge=IIIIIIII, Probability=8%, Report=' MULTIPLE_RCPTS 0.1, HTML_00_01 0.05, HTML_00_10 0.05, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_1100_1199 0, BODY_SIZE_2000_LESS 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, DKIM_SIGNATURE 0, FROM_NAME_PHRASE 0, INVALID_MSGID_NO_FQDN 0, URI_ENDS_IN_HTML 0, __ANY_URI 0, __CD 0, __CP_URI_IN_BODY 0, __CT 0, __CT_TEXT_PLAIN 0, __HAS_FROM 0, __HAS_MSGID 0, __HAS_X_MAILING_LIST 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __MULTIPLE_RCPTS_CC_X2 0, __PHISH_SPEAR_SUBJECT 0, __SANE_MSGID 0, __SUBJ_ALPHA_END 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __URI_NO_WWW 0, __URI_NS , __USER_AGENT 0, __YOUTUBE_RCVD 0' |
Commit Message
Luis de Bethencourt
Feb. 8, 2015, 10:44 p.m. UTC
Cleaning the following compiler warning:
rtl2832.c:703:12: warning: 'tmp' may be used uninitialized in this function
Even though it could never happen since if rtl2832_rd_demod_reg () doesn't set
tmp, this line would never run because we go to err. It is still nice to avoid
compiler warnings.
Signed-off-by: Luis de Bethencourt <luis.bg@samsung.com>
---
drivers/media/dvb-frontends/rtl2832.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
On Sun, Feb 08, 2015 at 10:44:22PM +0000, Luis de Bethencourt wrote: > Cleaning the following compiler warning: > rtl2832.c:703:12: warning: 'tmp' may be used uninitialized in this function > > Even though it could never happen since if rtl2832_rd_demod_reg () doesn't set > tmp, this line would never run because we go to err. It is still nice to avoid > compiler warnings. > > Signed-off-by: Luis de Bethencourt <luis.bg@samsung.com> > --- > drivers/media/dvb-frontends/rtl2832.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/media/dvb-frontends/rtl2832.c b/drivers/media/dvb-frontends/rtl2832.c > index 5d2d8f4..ad36d1c 100644 > --- a/drivers/media/dvb-frontends/rtl2832.c > +++ b/drivers/media/dvb-frontends/rtl2832.c > @@ -685,7 +685,7 @@ static int rtl2832_read_status(struct dvb_frontend *fe, fe_status_t *status) > struct rtl2832_dev *dev = fe->demodulator_priv; > struct i2c_client *client = dev->client; > int ret; > - u32 tmp; > + u32 tmp = 0; > > dev_dbg(&client->dev, "\n"); > > -- > 2.1.0 > Hello all :) This warning can be seen in: http://hverkuil.home.xs4all.nl/logs/Saturday.log Thank you Hans for the daily build and logs. Luis -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 02/09/2015 12:44 AM, Luis de Bethencourt wrote: > Cleaning the following compiler warning: > rtl2832.c:703:12: warning: 'tmp' may be used uninitialized in this function > > Even though it could never happen since if rtl2832_rd_demod_reg () doesn't set > tmp, this line would never run because we go to err. It is still nice to avoid > compiler warnings. > > Signed-off-by: Luis de Bethencourt <luis.bg@samsung.com> > --- > drivers/media/dvb-frontends/rtl2832.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/media/dvb-frontends/rtl2832.c b/drivers/media/dvb-frontends/rtl2832.c > index 5d2d8f4..ad36d1c 100644 > --- a/drivers/media/dvb-frontends/rtl2832.c > +++ b/drivers/media/dvb-frontends/rtl2832.c > @@ -685,7 +685,7 @@ static int rtl2832_read_status(struct dvb_frontend *fe, fe_status_t *status) > struct rtl2832_dev *dev = fe->demodulator_priv; > struct i2c_client *client = dev->client; > int ret; > - u32 tmp; > + u32 tmp = 0; > > dev_dbg(&client->dev, "\n"); I looked the code and I cannot see how it could used as uninitialized. Dunno how it could be fixed properly. Also, I think idiom to say compiler that variable could be uninitialized is to store its own value. But I am fine with zero initialization too. u32 tmp = tmp; regards Antti
On Tue, Feb 10, 2015 at 12:57:24PM +0200, Antti Palosaari wrote: > On 02/09/2015 12:44 AM, Luis de Bethencourt wrote: > >Cleaning the following compiler warning: > >rtl2832.c:703:12: warning: 'tmp' may be used uninitialized in this function > > > >Even though it could never happen since if rtl2832_rd_demod_reg () doesn't set > >tmp, this line would never run because we go to err. It is still nice to avoid > >compiler warnings. > > > >Signed-off-by: Luis de Bethencourt <luis.bg@samsung.com> > >--- > > drivers/media/dvb-frontends/rtl2832.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > >diff --git a/drivers/media/dvb-frontends/rtl2832.c b/drivers/media/dvb-frontends/rtl2832.c > >index 5d2d8f4..ad36d1c 100644 > >--- a/drivers/media/dvb-frontends/rtl2832.c > >+++ b/drivers/media/dvb-frontends/rtl2832.c > >@@ -685,7 +685,7 @@ static int rtl2832_read_status(struct dvb_frontend *fe, fe_status_t *status) > > struct rtl2832_dev *dev = fe->demodulator_priv; > > struct i2c_client *client = dev->client; > > int ret; > >- u32 tmp; > >+ u32 tmp = 0; > > > > dev_dbg(&client->dev, "\n"); > > I looked the code and I cannot see how it could used as uninitialized. Dunno > how it could be fixed properly. Hi Antti, I agree. If rtl2832_rd_demod_reg() in line 696 doesn't set tmp it is because it has errored out. Which means rtl2832_read_status() itself will goto err before the check for 'if (tmp == 11)' line that generates the warning. I mentioned this in my commit message :) > > Also, I think idiom to say compiler that variable could be uninitialized is > to store its own value. But I am fine with zero initialization too. > > u32 tmp = tmp; > > regards > Antti > > -- > http://palosaari.fi/ If you prefer I use the 'u32 tmp = tmp;' I am happy to change my patch. You say you are fine with zero initialization too, but I prefer offering whatever you think is best. Thanks for taking the time to look at this, Luis -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Em Tue, 10 Feb 2015 12:57:24 +0200 Antti Palosaari <crope@iki.fi> escreveu: > On 02/09/2015 12:44 AM, Luis de Bethencourt wrote: > > Cleaning the following compiler warning: > > rtl2832.c:703:12: warning: 'tmp' may be used uninitialized in this function > > > > Even though it could never happen since if rtl2832_rd_demod_reg () doesn't set > > tmp, this line would never run because we go to err. It is still nice to avoid > > compiler warnings. > > > > Signed-off-by: Luis de Bethencourt <luis.bg@samsung.com> > > --- > > drivers/media/dvb-frontends/rtl2832.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/media/dvb-frontends/rtl2832.c b/drivers/media/dvb-frontends/rtl2832.c > > index 5d2d8f4..ad36d1c 100644 > > --- a/drivers/media/dvb-frontends/rtl2832.c > > +++ b/drivers/media/dvb-frontends/rtl2832.c > > @@ -685,7 +685,7 @@ static int rtl2832_read_status(struct dvb_frontend *fe, fe_status_t *status) > > struct rtl2832_dev *dev = fe->demodulator_priv; > > struct i2c_client *client = dev->client; > > int ret; > > - u32 tmp; > > + u32 tmp = 0; > > > > dev_dbg(&client->dev, "\n"); > > I looked the code and I cannot see how it could used as uninitialized. > Dunno how it could be fixed properly. > > Also, I think idiom to say compiler that variable could be uninitialized > is to store its own value. But I am fine with zero initialization too. > > u32 tmp = tmp; Actually, the right way is to declare it as: u32 uninitialized_var(tmp) The syntax to suppress compiler warnings depends on the compiler: include/linux/compiler-clang.h:#define uninitialized_var(x) x = *(&(x)) include/linux/compiler-gcc.h:#define uninitialized_var(x) x = x Also, using uninitialized_var() better documents it. Regards, Mauro -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Feb 10, 2015 at 09:35:52PM -0200, Mauro Carvalho Chehab wrote: > Em Tue, 10 Feb 2015 12:57:24 +0200 > Antti Palosaari <crope@iki.fi> escreveu: > > > On 02/09/2015 12:44 AM, Luis de Bethencourt wrote: > > > Cleaning the following compiler warning: > > > rtl2832.c:703:12: warning: 'tmp' may be used uninitialized in this function > > > > > > Even though it could never happen since if rtl2832_rd_demod_reg () doesn't set > > > tmp, this line would never run because we go to err. It is still nice to avoid > > > compiler warnings. > > > > > > Signed-off-by: Luis de Bethencourt <luis.bg@samsung.com> > > > --- > > > drivers/media/dvb-frontends/rtl2832.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/drivers/media/dvb-frontends/rtl2832.c b/drivers/media/dvb-frontends/rtl2832.c > > > index 5d2d8f4..ad36d1c 100644 > > > --- a/drivers/media/dvb-frontends/rtl2832.c > > > +++ b/drivers/media/dvb-frontends/rtl2832.c > > > @@ -685,7 +685,7 @@ static int rtl2832_read_status(struct dvb_frontend *fe, fe_status_t *status) > > > struct rtl2832_dev *dev = fe->demodulator_priv; > > > struct i2c_client *client = dev->client; > > > int ret; > > > - u32 tmp; > > > + u32 tmp = 0; > > > > > > dev_dbg(&client->dev, "\n"); > > > > I looked the code and I cannot see how it could used as uninitialized. > > Dunno how it could be fixed properly. > > > > Also, I think idiom to say compiler that variable could be uninitialized > > is to store its own value. But I am fine with zero initialization too. > > > > u32 tmp = tmp; > > Actually, the right way is to declare it as: > > u32 uninitialized_var(tmp) > > The syntax to suppress compiler warnings depends on the compiler: > > include/linux/compiler-clang.h:#define uninitialized_var(x) x = *(&(x)) > include/linux/compiler-gcc.h:#define uninitialized_var(x) x = x > > Also, using uninitialized_var() better documents it. > > Regards, > Mauro Hi Mauro, That is a way more elegant solution. Great! I will check out that compiler-clang header file, it's interesting. I just sent a revised patch using this :) Thanks, Luis -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/media/dvb-frontends/rtl2832.c b/drivers/media/dvb-frontends/rtl2832.c index 5d2d8f4..ad36d1c 100644 --- a/drivers/media/dvb-frontends/rtl2832.c +++ b/drivers/media/dvb-frontends/rtl2832.c @@ -685,7 +685,7 @@ static int rtl2832_read_status(struct dvb_frontend *fe, fe_status_t *status) struct rtl2832_dev *dev = fe->demodulator_priv; struct i2c_client *client = dev->client; int ret; - u32 tmp; + u32 tmp = 0; dev_dbg(&client->dev, "\n");