On Wed, May 16, 2018 at 04:17:42PM +0000, Bart Van Assche wrote: > There is another reason the deadline is included in the atomic operation, > namely to handle races between the BLK_EH_RESET_TIMER case in blk_mq_rq_timed_out() > and blk_mq_complete_request(). I don't think that race is addressed properly by > your patch. I will see what I can do to address that race without using 64-bit > atomic operations. I might be missing something here, so please help me understand what is missing. If we restart the timer in blk_mq_rq_timed_out we also bump the generation at the same time as we reset the deadline in your old patch. With this patch we only bump the generation, but that should be enough to address the rest, or not?