Subject: Re: [PATCH] Next branch: authgss: authgss.c: Fix warnings for uninitizlized variable expire

From: Boaz Harrosh <[email-masked]>
Date: Tue, 02 Sep 2014 13:52:15 +0300

On 09/01/2014 04:50 PM, Trond Myklebust wrote:
> On Mon, Sep 1, 2014 at 7:32 AM, Shakil A Khan <[email-masked]> wrote:
>> Signed-off-by : Shakil A Khan <[email-masked]>
>> ---
>>  net/sunrpc/auth_gss/auth_gss.c |    2 +-
>>  1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c
>> index afb292c..bea0951 100644
>> --- a/net/sunrpc/auth_gss/auth_gss.c
>> +++ b/net/sunrpc/auth_gss/auth_gss.c
>> @@ -1387,7 +1387,7 @@ gss_key_timeout(struct rpc_cred *rc)
>>         struct gss_cred *gss_cred = container_of(rc, struct gss_cred, gc_base);
>>         struct gss_cl_ctx *ctx;
>>         unsigned long now = jiffies;
>> -       unsigned long expire;
>> +       unsigned long expire = 0;
>>
>>         rcu_read_lock();
>>         ctx = rcu_dereference(gss_cred->gc_ctx);
>> --
>> 1.7.1
> 
> That would be a compiler bug, not a kernel bug. The kernel code is
> perfectly correct as it stands, and will never access the
> uninitialised variable.
> 

Than you will need the infamous uninitialised_var()

diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c
index afb292c..bea0951 100644
--- a/net/sunrpc/auth_gss/auth_gss.c
+++ b/net/sunrpc/auth_gss/auth_gss.c
@@ -1387,7 +1387,7 @@ gss_key_timeout(struct rpc_cred *rc)
 	struct gss_cred *gss_cred = container_of(rc, struct gss_cred, gc_base);
 	struct gss_cl_ctx *ctx;
 	unsigned long now = jiffies;
-	unsigned long expire;
+	unsigned long uninitialised_var(expire);
 
 	rcu_read_lock();
 	ctx = rcu_dereference(gss_cred->gc_ctx);

Cheers
Boaz