* [PATCH] futex: remove the pointer math from double_unlock_hb
@ 2009-03-12 22:11 Darren Hart
2009-03-13 0:18 ` [tip:core/futexes] " Darren Hart
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Darren Hart @ 2009-03-12 22:11 UTC (permalink / raw)
To: linux-kernel
Cc: Darren Hart, Thomas Gleixner, Peter Zijlstra, Ingo Molnar, Rusty Russell
I mistakenly included the pointer value ordering in the double_unlock_hb
in my previous patch. It's only necessary in the double_lock_hb
function. This patch removes it.
Signed-off-by: Darren Hart <dvhltc@us.ibm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Rusty Russell <rusty@rustcorp.com.au>
---
kernel/futex.c | 10 ++--------
1 files changed, 2 insertions(+), 8 deletions(-)
diff --git a/kernel/futex.c b/kernel/futex.c
index 9c97f67..2331b73 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -658,14 +658,8 @@ double_lock_hb(struct futex_hash_bucket *hb1, struct futex_hash_bucket *hb2)
static inline void
double_unlock_hb(struct futex_hash_bucket *hb1, struct futex_hash_bucket *hb2)
{
- if (hb1 <= hb2) {
- spin_unlock(&hb2->lock);
- if (hb1 < hb2)
- spin_unlock(&hb1->lock);
- } else { /* hb1 > hb2 */
- spin_unlock(&hb1->lock);
- spin_unlock(&hb2->lock);
- }
+ spin_unlock(&hb1->lock);
+ spin_unlock(&hb2->lock);
}
/*
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [tip:core/futexes] futex: remove the pointer math from double_unlock_hb
2009-03-12 22:11 [PATCH] futex: remove the pointer math from double_unlock_hb Darren Hart
@ 2009-03-13 0:18 ` Darren Hart
2009-03-13 9:26 ` [PATCH] " Thomas Gleixner
2009-03-13 9:36 ` [tip:core/futexes] futex: remove the pointer math from double_unlock_hb, fix Ingo Molnar
2 siblings, 0 replies; 5+ messages in thread
From: Darren Hart @ 2009-03-13 0:18 UTC (permalink / raw)
To: linux-tip-commits
Cc: linux-kernel, dvhltc, hpa, mingo, rusty, peterz, tglx, mingo
Commit-ID: f061d35150003b7fd5b133d14d66a74500fdaa60
Gitweb: http://git.kernel.org/tip/f061d35150003b7fd5b133d14d66a74500fdaa60
Author: Darren Hart <dvhltc@us.ibm.com>
AuthorDate: Thu, 12 Mar 2009 15:11:18 -0700
Commit: Ingo Molnar <mingo@elte.hu>
CommitDate: Fri, 13 Mar 2009 01:15:46 +0100
futex: remove the pointer math from double_unlock_hb
Impact: simplify code
I mistakenly included the pointer value ordering in the
double_unlock_hb() in my previous patch. It's only necessary
in the double_lock_hb() function. This patch removes it.
Signed-off-by: Darren Hart <dvhltc@us.ibm.com>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Cc: Rusty Russell <rusty@rustcorp.com.au>
LKML-Reference: <20090312221118.11146.68610.stgit@Aeon>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
kernel/futex.c | 10 ++--------
1 files changed, 2 insertions(+), 8 deletions(-)
diff --git a/kernel/futex.c b/kernel/futex.c
index 9c97f67..2331b73 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -658,14 +658,8 @@ double_lock_hb(struct futex_hash_bucket *hb1, struct futex_hash_bucket *hb2)
static inline void
double_unlock_hb(struct futex_hash_bucket *hb1, struct futex_hash_bucket *hb2)
{
- if (hb1 <= hb2) {
- spin_unlock(&hb2->lock);
- if (hb1 < hb2)
- spin_unlock(&hb1->lock);
- } else { /* hb1 > hb2 */
- spin_unlock(&hb1->lock);
- spin_unlock(&hb2->lock);
- }
+ spin_unlock(&hb1->lock);
+ spin_unlock(&hb2->lock);
}
/*
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] futex: remove the pointer math from double_unlock_hb
2009-03-12 22:11 [PATCH] futex: remove the pointer math from double_unlock_hb Darren Hart
2009-03-13 0:18 ` [tip:core/futexes] " Darren Hart
@ 2009-03-13 9:26 ` Thomas Gleixner
2009-03-13 9:36 ` [tip:core/futexes] futex: remove the pointer math from double_unlock_hb, fix Ingo Molnar
2 siblings, 0 replies; 5+ messages in thread
From: Thomas Gleixner @ 2009-03-13 9:26 UTC (permalink / raw)
To: Darren Hart; +Cc: linux-kernel, Peter Zijlstra, Ingo Molnar, Rusty Russell
On Thu, 12 Mar 2009, Darren Hart wrote:
> I mistakenly included the pointer value ordering in the double_unlock_hb
> in my previous patch. It's only necessary in the double_lock_hb
> function. This patch removes it.
>
> Signed-off-by: Darren Hart <dvhltc@us.ibm.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Ingo Molnar <mingo@elte.hu>
> Cc: Rusty Russell <rusty@rustcorp.com.au>
> ---
>
> kernel/futex.c | 10 ++--------
> 1 files changed, 2 insertions(+), 8 deletions(-)
>
> diff --git a/kernel/futex.c b/kernel/futex.c
> index 9c97f67..2331b73 100644
> --- a/kernel/futex.c
> +++ b/kernel/futex.c
> @@ -658,14 +658,8 @@ double_lock_hb(struct futex_hash_bucket *hb1, struct futex_hash_bucket *hb2)
> static inline void
> double_unlock_hb(struct futex_hash_bucket *hb1, struct futex_hash_bucket *hb2)
> {
> - if (hb1 <= hb2) {
> - spin_unlock(&hb2->lock);
> - if (hb1 < hb2)
> - spin_unlock(&hb1->lock);
> - } else { /* hb1 > hb2 */
> - spin_unlock(&hb1->lock);
> - spin_unlock(&hb2->lock);
> - }
> + spin_unlock(&hb1->lock);
> + spin_unlock(&hb2->lock);
This is missing the check for hb1 == hb2. As I said before:
> Can we just put the code into double_unlock_hb() which gets replaced ?
>
> i.e:
>
> spin_unlock(&hb1->lock);
> if (hb1 != hb2)
> spin_unlock(&hb2->lock);
Thanks,
tglx
^ permalink raw reply [flat|nested] 5+ messages in thread
* [tip:core/futexes] futex: remove the pointer math from double_unlock_hb, fix
2009-03-12 22:11 [PATCH] futex: remove the pointer math from double_unlock_hb Darren Hart
2009-03-13 0:18 ` [tip:core/futexes] " Darren Hart
2009-03-13 9:26 ` [PATCH] " Thomas Gleixner
@ 2009-03-13 9:36 ` Ingo Molnar
2009-03-13 15:03 ` Darren Hart
2 siblings, 1 reply; 5+ messages in thread
From: Ingo Molnar @ 2009-03-13 9:36 UTC (permalink / raw)
To: linux-tip-commits; +Cc: linux-kernel, dvhltc, hpa, mingo, tglx, mingo
Commit-ID: 88f502fedba82eff252b6420e8b8328e4ae25c67
Gitweb: http://git.kernel.org/tip/88f502fedba82eff252b6420e8b8328e4ae25c67
Author: Ingo Molnar <mingo@elte.hu>
AuthorDate: Fri, 13 Mar 2009 10:32:07 +0100
Commit: Ingo Molnar <mingo@elte.hu>
CommitDate: Fri, 13 Mar 2009 10:32:07 +0100
futex: remove the pointer math from double_unlock_hb, fix
Impact: fix double unlock crash
Thomas Gleixner noticed that the simplified double_unlock_hb()
became ... too unsophisticated: in the hb1 == hb2 case it will
do a double unlock.
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Darren Hart <dvhltc@us.ibm.com>
LKML-Reference: <20090312221118.11146.68610.stgit@Aeon>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
kernel/futex.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/kernel/futex.c b/kernel/futex.c
index 2331b73..6b50a02 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -659,7 +659,8 @@ static inline void
double_unlock_hb(struct futex_hash_bucket *hb1, struct futex_hash_bucket *hb2)
{
spin_unlock(&hb1->lock);
- spin_unlock(&hb2->lock);
+ if (hb1 != hb2)
+ spin_unlock(&hb2->lock);
}
/*
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [tip:core/futexes] futex: remove the pointer math from double_unlock_hb, fix
2009-03-13 9:36 ` [tip:core/futexes] futex: remove the pointer math from double_unlock_hb, fix Ingo Molnar
@ 2009-03-13 15:03 ` Darren Hart
0 siblings, 0 replies; 5+ messages in thread
From: Darren Hart @ 2009-03-13 15:03 UTC (permalink / raw)
To: mingo, hpa, linux-kernel, tglx, mingo; +Cc: linux-tip-commits
Ingo Molnar wrote:
> Commit-ID: 88f502fedba82eff252b6420e8b8328e4ae25c67
> Gitweb: http://git.kernel.org/tip/88f502fedba82eff252b6420e8b8328e4ae25c67
> Author: Ingo Molnar <mingo@elte.hu>
> AuthorDate: Fri, 13 Mar 2009 10:32:07 +0100
> Commit: Ingo Molnar <mingo@elte.hu>
> CommitDate: Fri, 13 Mar 2009 10:32:07 +0100
>
> futex: remove the pointer math from double_unlock_hb, fix
>
> Impact: fix double unlock crash
>
> Thomas Gleixner noticed that the simplified double_unlock_hb()
> became ... too unsophisticated: in the hb1 == hb2 case it will
> do a double unlock.
Gah. Thanks for catching it.
>
> Reported-by: Thomas Gleixner <tglx@linutronix.de>
> Cc: Darren Hart <dvhltc@us.ibm.com>
> LKML-Reference: <20090312221118.11146.68610.stgit@Aeon>
> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Darren Hart <dvhltc@us.ibm.com>
>
>
> ---
> kernel/futex.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/kernel/futex.c b/kernel/futex.c
> index 2331b73..6b50a02 100644
> --- a/kernel/futex.c
> +++ b/kernel/futex.c
> @@ -659,7 +659,8 @@ static inline void
> double_unlock_hb(struct futex_hash_bucket *hb1, struct futex_hash_bucket *hb2)
> {
> spin_unlock(&hb1->lock);
> - spin_unlock(&hb2->lock);
> + if (hb1 != hb2)
> + spin_unlock(&hb2->lock);
> }
>
> /*
--
Darren Hart
IBM Linux Technology Center
Real-Time Linux Team
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-03-13 15:04 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-03-12 22:11 [PATCH] futex: remove the pointer math from double_unlock_hb Darren Hart
2009-03-13 0:18 ` [tip:core/futexes] " Darren Hart
2009-03-13 9:26 ` [PATCH] " Thomas Gleixner
2009-03-13 9:36 ` [tip:core/futexes] futex: remove the pointer math from double_unlock_hb, fix Ingo Molnar
2009-03-13 15:03 ` Darren Hart
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.