[lkml]   [2007]   [Apr]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] Correctly prevent IDE timer expiry function to run if request was already handled

    On Friday 06 April 2007, Sergei Shtylyov wrote:
    > Hello.
    > Suleiman Souhlal wrote:

    > > The reason the timer could have been active at that point, before applying
    > > this patch, is that we try to dispatch a new request after handling one.
    > > The new request will then have its own expiry timer, along with a handler.
    > > Since before this patch ide_timer_expiry() only looked at whether or not
    > > a handler was present, it would incorrectly think the request had not been
    > > handled already, and incorrectly tried to restart the timer.
    > Hm, I'm still not sure why this happens at all, probably need to try
    > reproducing it (unless you post a stack trace :-).

    not a stack trace but should explain the issue a bit:

    -> just before taking ide_lock IRQ happens
    -> completes the command and queues the next one
    ide_timer_expiry (resumed)
    -> takes ide_lock
    -> the bug happens ;)

    should be even easier to trigger it on SMP since ide_timer_expiry
    may be running at the same time as ide_intr

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2007-04-06 23:29    [W:0.020 / U:5.680 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site