lkml.org 
[lkml]   [2009]   [Mar]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [tip:core/futexes] futex: remove the pointer math from double_unlock_hb, fix
    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


    \
     
     \ /
      Last update: 2009-03-13 16:07    [W:0.022 / U:34.048 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site