Re: [PATCH] futex: remove the pointer math from double_unlock_hb

From: Thomas Gleixner
Date: Fri Mar 13 2009 - 05:27:00 EST


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@xxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxx>
> Cc: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
> ---
>
> 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
--
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/