All of lore.kernel.org
 help / color / mirror / Atom feed
From: Trond Myklebust <trondmy@primarydata.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Schumaker Anna <anna.schumaker@netapp.com>,
	"List Linux Network Devel Mailing" <netdev@vger.kernel.org>,
	List Linux NFS Mailing <linux-nfs@vger.kernel.org>,
	List Linux Kernel Mailing <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/2] NFSv4.1: work around -Wmaybe-uninitialized warning
Date: Wed, 31 Aug 2016 13:17:48 +0000	[thread overview]
Message-ID: <9F99A562-A4F6-457A-A78F-44BAC3B5734F@primarydata.com> (raw)
In-Reply-To: <20160831123911.3467676-1-arnd@arndb.de>


> On Aug 31, 2016, at 08:39, Arnd Bergmann <arnd@arndb.de> wrote:
> 
> A bugfix introduced a harmless gcc warning in nfs4_slot_seqid_in_use:
> 
> fs/nfs/nfs4session.c:203:54: error: 'cur_seq' may be used uninitialized in this function [-Werror=maybe-uninitialized]
> 
> gcc is not smart enough to conclude that the IS_ERR/PTR_ERR pair
> results in a nonzero return value here. Using PTR_ERR_OR_ZERO()
> instead makes this clear to the compiler.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Fixes: e09c978aae5b ("NFSv4.1: Fix Oopsable condition in server callback races")
> ---
> fs/nfs/nfs4session.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
> 
> The patch that caused this just came in for v4.8-rc5. As the warning
> is now disabled by default and this is harmless, this can probably
> get queued for v4.9 instead.
> 
> I mentioned earlier that I got the new warning for net-next, but
> failed to notice that it had come from mainline instead.
> 
> diff --git a/fs/nfs/nfs4session.c b/fs/nfs/nfs4session.c
> index b62973045a3e..150c5a1879bf 100644
> --- a/fs/nfs/nfs4session.c
> +++ b/fs/nfs/nfs4session.c
> @@ -178,12 +178,14 @@ static int nfs4_slot_get_seqid(struct nfs4_slot_table  *tbl, u32 slotid,
> 	__must_hold(&tbl->slot_tbl_lock)
> {
> 	struct nfs4_slot *slot;
> +	int ret;
> 
> 	slot = nfs4_lookup_slot(tbl, slotid);
> -	if (IS_ERR(slot))
> -		return PTR_ERR(slot);
> -	*seq_nr = slot->seq_nr;
> -	return 0;
> +	ret = PTR_ERR_OR_ZERO(slot);
> +	if (!ret)
> +		*seq_nr = slot->seq_nr;
> +
> +	return ret;
> }
> 

What version of gcc are you using? I’m unable to reproduce with gcc 6.1.1..

WARNING: multiple messages have this Message-ID (diff)
From: Trond Myklebust <trondmy@primarydata.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Schumaker Anna <anna.schumaker@netapp.com>,
	"List Linux Network Devel Mailing" <netdev@vger.kernel.org>,
	List Linux NFS Mailing <linux-nfs@vger.kernel.org>,
	List Linux Kernel Mailing <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/2] NFSv4.1: work around -Wmaybe-uninitialized warning
Date: Wed, 31 Aug 2016 13:17:48 +0000	[thread overview]
Message-ID: <9F99A562-A4F6-457A-A78F-44BAC3B5734F@primarydata.com> (raw)
In-Reply-To: <20160831123911.3467676-1-arnd@arndb.de>


> On Aug 31, 2016, at 08:39, Arnd Bergmann <arnd@arndb.de> wrote:
>=20
> A bugfix introduced a harmless gcc warning in nfs4_slot_seqid_in_use:
>=20
> fs/nfs/nfs4session.c:203:54: error: 'cur_seq' may be used uninitialized i=
n this function [-Werror=3Dmaybe-uninitialized]
>=20
> gcc is not smart enough to conclude that the IS_ERR/PTR_ERR pair
> results in a nonzero return value here. Using PTR_ERR_OR_ZERO()
> instead makes this clear to the compiler.
>=20
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Fixes: e09c978aae5b ("NFSv4.1: Fix Oopsable condition in server callback =
races")
> ---
> fs/nfs/nfs4session.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>=20
> The patch that caused this just came in for v4.8-rc5. As the warning
> is now disabled by default and this is harmless, this can probably
> get queued for v4.9 instead.
>=20
> I mentioned earlier that I got the new warning for net-next, but
> failed to notice that it had come from mainline instead.
>=20
> diff --git a/fs/nfs/nfs4session.c b/fs/nfs/nfs4session.c
> index b62973045a3e..150c5a1879bf 100644
> --- a/fs/nfs/nfs4session.c
> +++ b/fs/nfs/nfs4session.c
> @@ -178,12 +178,14 @@ static int nfs4_slot_get_seqid(struct nfs4_slot_tab=
le  *tbl, u32 slotid,
> =09__must_hold(&tbl->slot_tbl_lock)
> {
> =09struct nfs4_slot *slot;
> +=09int ret;
>=20
> =09slot =3D nfs4_lookup_slot(tbl, slotid);
> -=09if (IS_ERR(slot))
> -=09=09return PTR_ERR(slot);
> -=09*seq_nr =3D slot->seq_nr;
> -=09return 0;
> +=09ret =3D PTR_ERR_OR_ZERO(slot);
> +=09if (!ret)
> +=09=09*seq_nr =3D slot->seq_nr;
> +
> +=09return ret;
> }
>=20

What version of gcc are you using? I=92m unable to reproduce with gcc 6.1.1=
..



  parent reply	other threads:[~2016-08-31 13:17 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-31 12:39 [PATCH 1/2] NFSv4.1: work around -Wmaybe-uninitialized warning Arnd Bergmann
2016-08-31 12:39 ` Arnd Bergmann
2016-08-31 12:39 ` [PATCH 2/2] rxrpc: fix undefined behavior in rxrpc_mark_call_released Arnd Bergmann
2016-08-31 13:17 ` Trond Myklebust [this message]
2016-08-31 13:17   ` [PATCH 1/2] NFSv4.1: work around -Wmaybe-uninitialized warning Trond Myklebust
2016-08-31 13:37   ` Arnd Bergmann
2016-08-31 13:37     ` Arnd Bergmann
2016-08-31 15:02     ` Trond Myklebust
2016-08-31 15:02       ` Trond Myklebust
2016-08-31 15:02       ` Trond Myklebust
2016-08-31 15:52       ` Arnd Bergmann
2016-08-31 17:39 ` [PATCH 2/2] rxrpc: fix undefined behavior in rxrpc_mark_call_released David Howells
2016-08-31 19:40   ` Arnd Bergmann
2016-08-31 20:25 ` David Howells
2016-08-31 20:31   ` Arnd Bergmann
2016-08-31 20:52   ` David Miller
2016-08-31 20:26 ` David Howells
2016-08-31 20:37   ` Arnd Bergmann
2016-08-31 21:05   ` David Howells

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9F99A562-A4F6-457A-A78F-44BAC3B5734F@primarydata.com \
    --to=trondmy@primarydata.com \
    --cc=anna.schumaker@netapp.com \
    --cc=arnd@arndb.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.