Messages in this thread |  | | | Date | Fri, 06 Apr 2007 23:22:02 +0400 | | From | Sergei Shtylyov <> | | Subject | Re: [PATCH] Correctly prevent IDE timer expiry function to run if request was already handled |
| |
Hello.
Suleiman Souhlal wrote:
> It is possible for the timer expiry function to run even though the > request has already been handled: ide_timer_expiry() only checks that > the handler is not NULL, but it is possible that we have handled a > request (thus clearing the handler) and then started a new request > (thus starting the timer again, and setting a handler).
> A simple way to exhibit this is to set the DMA timeout to 1 jiffy and > run dd: The kernel will panic after a few minutes because > ide_timer_expiry() tries to add a timer when it's already active.
> To fix this, we simply add a request generation count that gets > incremented at every interrupt, and check in ide_timer_expiry() that > we have not already handled a new interrupt before running the expiry > function.
Couldn't this be addressed by simply changing add_timer() to mod_timer()?
MBR, Sergei - 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/
|  |