On Friday 06 April 2007, 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. > > Signed-off-by: Suleiman Souhlal <suleiman@xxxxxxxxxx> applied, thanks for fixing this - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html