Hello, On 04/01/2010 01:32 PM, Herbert Xu wrote: >> Does the above change make the request to be requeued twice? > > No, we clear hwif->rq in ide_dma_timeout_retry so ide_timer_expiry > will have nothing to requeue. OIC. It's also cleared in ide_timer_expiry() too. Asymmetry among different failure paths worries me. e.g. looking at the code, I can't find how ide_error() would requeue the request either. It looks like each hwif->rq = NULL in failure path should be investigated and the affected ones should be replaced with a function which requeues and clears hwif->rq. Hmmm.... am I misunderstanding something? > Besides, we want to requeue here regardless of whether we return > ide_stopped. For example, we may return ide_started in case of > a pending reset, but as the original request hasn't been completed > it must still be requeued. Yeap, right. ide_started/stopped doesn't have much bearing with the current request. It indicates the current controller/driver state. Thanks. -- tejun -- 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