• Herbert Xu's avatar
    ide: Requeue request after DMA timeout · 6072f749
    Herbert Xu authored
    I noticed that my KVM virtual machines were experiencing IDE
    issues resulting in processes stuck on waiting for buffers to
    complete.
    
    The root cause is of course race conditions in the ancient qemu
    backend that I'm using.  However, the fact that the guest isn't
    recovering is a bug.
    
    I've tracked it down to the change made last year to dequeue
    requests at the start rather than at the end in the IDE layer.
    
    commit 8f6205cd
    Author: Tejun Heo <tj@kernel.org>
    Date:   Fri May 8 11:53:59 2009 +0900
    
        ide: dequeue in-flight request
    
    The problem is that the function ide_dma_timeout_retry does not
    requeue the current request, causing one request to be lost for
    each DMA timeout.
    
    This patch fixes this by requeueing the request.
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6072f749
ide-io.c 23.8 KB