lkml.org 
[lkml]   [2007]   [May]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [patch 3/3] clockevents: Fix resume logic - updated version
    On Sat, 12 May 2007 13:44:13 +0200 Thomas Gleixner <tglx@linutronix.de> wrote:

    > lockdep complains about the lock nesting of clocksource and watchdog
    > lock in the resume path. Move watchdog resume out of the clocksource
    > lock.
    >
    > Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    >
    > Index: linux-2.6.21/kernel/time/clocksource.c
    > ===================================================================
    > --- linux-2.6.21.orig/kernel/time/clocksource.c
    > +++ linux-2.6.21/kernel/time/clocksource.c
    > @@ -151,9 +151,11 @@ static void clocksource_watchdog(unsigne
    > }
    > static void clocksource_resume_watchdog(void)
    > {
    > - spin_lock(&watchdog_lock);
    > + unsigned long flags;
    > +
    > + spin_lock_irqsave(&watchdog_lock, flags);
    > watchdog_resumed = 1;
    > - spin_unlock(&watchdog_lock);
    > + spin_unlock_irqrestore(&watchdog_lock, flags);
    > }
    >
    > static void clocksource_check_watchdog(struct clocksource *cs)
    > @@ -224,9 +226,9 @@ void clocksource_resume(void)
    > cs->resume();
    > }
    >
    > - clocksource_resume_watchdog();
    > -
    > spin_unlock_irqrestore(&clocksource_lock, flags);
    > +
    > + clocksource_resume_watchdog();
    > }
    >

    The locking in clocksource_resume_watchdog looks pretty pointless anyway.
    Can't we just delete it?

    The only thing it can race against is, conceivably,

    resumed = watchdog_resumed;
    if (unlikely(resumed))
    watchdog_resumed = 0;

    which could be solved by using test_and_clear_bit().

    Does anyone have any theories about my lockdep warning?
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-05-12 18:55    [W:0.046 / U:1.036 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site