Re: [RFC][PATCH] futex: Hide false positive about uninit var usage

From: Darren Hart
Date: Tue Nov 16 2010 - 12:31:30 EST


On 11/16/2010 08:59 AM, Aguirre, Sergio wrote:
Hi Darren,

-----Original Message-----
From: Darren Hart [mailto:dvhart@xxxxxxxxxxxxxxx]
Sent: Tuesday, November 16, 2010 10:43 AM
To: Aguirre, Sergio
Cc: LKML; Thomas Gleixner; Peter Zijlstra; Ingo Molnar; Namhyung Kim
Subject: Re: [RFC][PATCH] futex: Hide false positive about uninit var
usage

On 11/16/2010 08:32 AM, Sergio Aguirre wrote:
In exit_robust_list, there was this warning shown:

kernel/futex.c: In function 'exit_robust_list':
kernel/futex.c:2492: warning: 'next_pi' may be used uninitialized in
this function

Which is a false positive, since in the function, the only scenario
possible in which the var is read, is after a successful excecution of
fetch_robust_entry, which populates the variable.

So there's no real possibility of it being used uninitialized.

Hi Sergio,

You are correct. Thomas has recently pulled my fix for this into tip, it
should be queued for mainline already.

Oh ok. Sorry, I didn't know that. Please ignore this patch then.

No problem. In the future, if you run into problems with futexes, check the linux-2.6-tip repository for fixes as that is where they are queued up before going into mainline.

git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git
branch: core/futexes

Thanks,

Darren


Regards,
Sergio


Thanks,

Darren Hart


Signed-off-by: Sergio Aguirre<saaguirre@xxxxxx>
Cc: Thomas Gleixner<tglx@xxxxxxxxxxxxx>
Cc: Peter Zijlstra<a.p.zijlstra@xxxxxxxxx>
Cc: Darren Hart<dvhart@xxxxxxxxxxxxxxx>
Cc: Ingo Molnar<mingo@xxxxxxx>
Cc: Namhyung Kim<namhyung@xxxxxxxxx>
---
kernel/futex.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/kernel/futex.c b/kernel/futex.c
index 6c683b3..3646157 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -2489,7 +2489,8 @@ void exit_robust_list(struct task_struct *curr)
{
struct robust_list_head __user *head = curr->robust_list;
struct robust_list __user *entry, *next_entry, *pending;
- unsigned int limit = ROBUST_LIST_LIMIT, pi, next_pi, pip;
+ unsigned int limit = ROBUST_LIST_LIMIT, pi;
+ unsigned int uninitialized_var(next_pi), pip;
unsigned long futex_offset;
int rc;



--
Darren Hart
Yocto Linux Kernel


--
Darren Hart
Yocto Linux Kernel
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/