Commit-ID: 4c115e951d80aff126468adaec7a6c7854f61ab8
Gitweb: http://git.kernel.org/tip/4c115e951d80aff126468adaec7a6c7854f61ab8
Author: Darren Hart<dvhart@xxxxxxxxxxxxxxx>
AuthorDate: Thu, 4 Nov 2010 15:00:00 -0400
Committer: Thomas Gleixner<tglx@xxxxxxxxxxxxx>
CommitDate: Wed, 10 Nov 2010 13:27:50 +0100
futex: Address compiler warnings in exit_robust_list
Since commit 1dcc41bb (futex: Change 3rd arg of fetch_robust_entry()
to unsigned int*) some gcc versions decided to emit the following
warning:
kernel/futex.c: In function âexit_robust_listâ:
kernel/futex.c:2492: warning: ânext_piâ may be used uninitialized in this function
The commit did not introduce the warning as gcc should have warned
before that commit as well. It's just gcc being silly.
The code path really can't result in next_pi being unitialized (or
should not), but let's keep the build clean. Annotate next_pi as an
uninitialized_var.
[ tglx: Addressed the same issue in futex_compat.c and massaged the
changelog ]
Signed-off-by: Darren Hart<dvhart@xxxxxxxxxxxxxxx>
Tested-by: Matt Fleming<matt@xxxxxxxxxxxxxxxxx>
Tested-by: Uwe Kleine-KÃnig<u.kleine-koenig@xxxxxxxxxxxxxx>
Cc: Peter Zijlstra<peterz@xxxxxxxxxxxxx>
Cc: Eric Dumazet<eric.dumazet@xxxxxxxxx>
Cc: John Kacur<jkacur@xxxxxxxxxx>
Cc: Ingo Molnar<mingo@xxxxxxx>
LKML-Reference:<1288897200-13008-1-git-send-email-dvhart@xxxxxxxxxxxxxxx>
Signed-off-by: Thomas Gleixner<tglx@xxxxxxxxxxxxx>
---
kernel/futex.c | 3 ++-
kernel/futex_compat.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/kernel/futex.c b/kernel/futex.c
index 6c683b3..40a8777 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, pip;
+ unsigned int uninitialized_var(next_pi);
unsigned long futex_offset;
int rc;
diff --git a/kernel/futex_compat.c b/kernel/futex_compat.c
index 06da4df..a7934ac 100644
--- a/kernel/futex_compat.c
+++ b/kernel/futex_compat.c
@@ -49,7 +49,8 @@ void compat_exit_robust_list(struct task_struct *curr)
{
struct compat_robust_list_head __user *head = curr->compat_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, pip;
+ unsigned int uninitialized_var(next_pi);
compat_uptr_t uentry, next_uentry, upending;
compat_long_t futex_offset;
int rc;