[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.039 / U:1.724 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site